如何正确处理 git-svn 中的不连续性

How to properly handle a discontinuity in git-svn

我处于(比如说)commit 666 不可靠的情况,即

git svn clone [REPO] -r665 #works
git svn clone [REPO] -r666 #Malformed XML
git svn clone [REPO] -r667 #works

但更奇怪

git svn clone [REPO] -r665
cd [REPO_NAME]
git svn fetch -r667 #Malformed XML
git svn fetch -r668 #Malformed XML
git svn fetch -r669 #Malformed XML
...

(SVN 中的类似命令也会发生这种情况)

目前,我知道的唯一方法是

有更合适的方法吗?

由于

,我看到了类似的错误

一个好的测试是使用免费版本 SubGit 尝试相同的导入(仅限一次转换:双向转换不是免费的)

该工具 (subgit import --svn-url http://example.com/svn/bar bar.git) 更强大,可以更好地处理 "Malformed XML"。

我记得黑客攻击 git cherry-pick 来解决这个问题

我做了一些事情(免责声明:未经测试):

git-svn init -R one -s [SVN-URL]
git-svn init -R two -s [SVN-URL] -r667
git checkout [svn-remote-one-trunk]
git checkout -b git-master
git cherry-pick [first commit SHA of svn-remote-two-trunk]
#Fix conflicts
git cherry-pick [svn-remote-two-trunk]

必须多次执行此操作并且 git-master 与 svn 遥控器不兼容,因此它要么必须被丢弃,要么任何 svn 工作都必须在 svn 分支上进行,我不得不合并 cherry picking进入我的工作流程,直到每个人都迁移到 git.