【发布时间】:2021-08-05 18:25:27
【问题描述】:
我们正在从 SVN 迁移到 git,现在遇到的问题是我们需要替换我们的 svn 外部。不幸的是,子模块并没有解决我们的问题,因为子模块的任何更改都需要更新父项目。所以我们找到了 git-externals 仓库(见https://github.com/develer-staff/git-externals)
一切运行良好,但在运行 git externals update 时,我们遇到以下错误消息:
externals sanity check passed!
External git-externals
Retrieving changes from server: git-externals
Fetching origin
Checking out branch master
error: Sparse checkout leaves no entry on working directory
<GitError: 1 "git checkout master" None>
我已经在 SO 上查看了有关此问题的许多其他问题/答案,但对我没有任何帮助。我也不确定在运行echo my-test-dir/* > .git/info/sparse-checkout 时需要传入哪个目录,因为当我运行git externals update 时,它首先将存储库检出到.git_externals-directory(而不是my-test-dir)。所以我不确定我是否需要做echo my-test-dir/* > .git/info/sparse-checkout 或echo .git_externals/* > .git/info/sparse-checkout。但不幸的是,他们都没有工作到现在。
在我的例子中, git_externals.json 看起来像:
{
"https://github.com/develer-staff/git-externals": {
"branch": "master",
"ref": null,
"targets": {
".": [
"my-test-dir"
]
},
"vcs": "git"
}
}
我只是将 git-externals 存储库添加为外部。
有人知道我该如何解决这个问题吗?或者也许有人知道替换 svn externals 的任何其他好的替代品?
【问题讨论】:
标签: git svn-externals sparse-checkout