我有一个已经存在的git-svn repo,在我的.config文件中有一个忽略路径,如下所示:
ignore-paths = ^(?!(Path1/Proj1|Path1/Proj2|Path2/Proj3))
Run Code Online (Sandbox Code Playgroud)
这很好用.
有人在我的git repo中添加了一个svn中的新项目.
如果我将ignore-paths更改为下面的内容并发出fetch或rebase,我永远不会看到Path2/Proj4
ignore-paths = ^(?!(Path1/Proj1|Path1/Proj2|Path2/Proj3|Path2/Proj4))
Run Code Online (Sandbox Code Playgroud)
在过去,我总是放弃并抨击我的git repo并重新创建它.有没有更好的办法?
编辑忽略路径后,您需要
git svn reset -r <n> -p # where <n> is the SVN revision where the new path was added.
git svn fetch
git rebase # or reset
Run Code Online (Sandbox Code Playgroud)
参考git-svn(1):
重置
撤消回取到指定修订版本的效果。这允许您重新获取SVN修订版。通常,SVN 修订版的内容不应更改, 也无需重置。但是,如果 SVN 权限发生更改,或者更改 --ignore-paths 选项,则提取可能会失败,并显示“未在提交中找到”(文件先前不可见)或“校验和不匹配”(错过了修改)。如果问题文件不能永远被忽略(使用 --ignore-paths),修复存储库的唯一方法是使用重置。
仅更改了 rev_map 和 refs/remotes/git-svn ( 有关详细信息,请参阅下面文件部分中的$GIT_DIR/svn/*\*/.rev_map.* )。在重置后进行fetch,然后使用git reset或git rebase将本地分支移动到新树上。