使用 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 进行初始稀疏签出?我还尝试从列出原始提交中不获取的directeis开始,但我不知道以后如何取消它们:
git svn fetch --ignore-paths dir4
dir4
但是,当我决定也要检查它时,如何告诉 git 停止忽略呢?