当使用 git svn 时,可以通过以下方式实现中央存储库的稀疏签出:
git clone -s URL-to-root --include-paths 'dir1|dir2|dir3'
使用此设置一段时间后,我想将另一个目录 dir4 添加到跟踪的目录中。这个目录存在于我已经签出的许多提交中。通过运行编辑变量 svn-remote.svn.include-paths
git config --edit
没有达到预期的效果git fetch
(只有在将来提交中更改的文件才会在更改时检出;不会立即检出),并且以下内容也不会检出 dir4:
git svn fetch --include-paths dir4
我认为以下方法可以工作,但由于重新获取自 dir4 第一次出现的第一个修订版(我们称之为 REV)以来的所有修订版,效率非常低:
git svn reset -r REV
git svn fetch --include-paths dir4
git svn rebase
跟踪 dir4 的更好方法是什么?如果我不关心 dir4 的历史怎么办?
如果我怀疑稍后想要更改跟踪目录列表,是否有更好的方法来使用 git-svn 进行初始稀疏签出?我也尝试从列出在原始提交中不获取的directoreis开始,但我不知道如何稍后忽略它们:
git svn fetch --ignore-paths dir4
但我如何告诉 git 停止忽略dir4
当我决定也想检查一下时?