m-git icon indicating copy to clipboard operation
m-git copied to clipboard

出bug:mgit init -g 命令初始化的多仓库目录与manifest.json文件不符(mgit其他命令默认拉取的相符合)

Open youlongfeixue opened this issue 2 years ago • 0 comments

我的manifest.json文件如下

{
    "remote": "[email protected]:yxxxxxxe", 
    "version":1,
    "mgit-excluded": false,
    "dest": "../Developments",
    "repositories": {
        "MainProject": {
            "abs-dest": "./",
            "remote-path": "mainProject.git",
            "config-repo": true
        },
        "SKSugarSwift": {
            "remote": "[email protected]:yxxxxxxe",
            "remote-path": "SKSugarSwift.git"
        }
    }
}

这时候的多仓库路径应该是这样的 【document-01】

- work
      - MainProject
            - .mgit
            - manifest.json
      - Developments
            - SKSugarSwift

而当在空文件夹下使用 mgit init -g xxx.git 命令初始化的结构是这样的 (目录结构显然不正确): 【document-02】

- work
      - MainProject
            - .mgit
            - manifest.json
            - Developments
                  - SKSugarSwift

并提示初始化成功

[~] 开始初始化多仓库...
[~] 正在克隆主仓库...
[✔] 主仓库克隆完成!
[~] 正在克隆子仓库...
[✔] (1/1) "SKSugarSwift"克隆完成!
[✔] 多仓库初始化成功!

这样,再次执行 mgit status 命令(任何一个正确的mgit命令),都会自动「从本地导出」子仓库,然后目录结构才会跟【document-01】一致,才是正确的!

----------------
| 从本地导出   |
| ----------   |
| SKSugarSwift |
----------------
[~] 以上仓库本地缺失,处理中...
[##############################] 100%
[~] 正在检查各仓库状态...
[##############################] 100%

不过这种情况需要将主仓库的 .git 文件夹从 .mgit/source-git/MainProject/.git 中移到主仓库目录中。


另一种情况,如果本地有主仓库,执行 mgit status 命令(任何一个正确的mgit命令),都会再次拉一遍远程子仓库,这时候目录结构跟【document-01】一致,是正确的。

如果我的描述不清楚,欢迎联系我QQ:781058139 ,一起解决问题。

youlongfeixue avatar Apr 08 '23 16:04 youlongfeixue