当svn提交的提交消息发生变化时,如何修复git-svn历史记录?

时间:2013-06-26 12:12:34

标签: git svn git-svn

我使用git-svn连接到subversion服务器。似乎可以更改subversion提交消息(旧提交)。查看已接受的答案herehere。但是git svn rebase没有注意到这种变化。

我怎样才能告诉git svn“修复”历史上的这些变化?


起初我没有注意到我的历史记录因为仍然包含旧的提交消息而被破坏,直到我添加了一个遥控器。此远程是同一服务器的另一个git-svn签出。当两个签出中的一个更新(使用git svn rebase)之后svn中的提交消息发生更改而另一个更新后更新,那么git-svn分支将指向我的存储库中的不同SHA-1哈希值和远程存储库。这是git-svn分支指针之一错误,需要重新同步/修复:

            / C  - D  - E  - F
.... - A - B
            \ C' - D' - E' - F'
              ^
         commit-message
         later changed

1 个答案:

答案 0 :(得分:-1)

如果你没有在Subversion修订版之上进行任何本地提交,你可以重置然后重新运行svn rebase:

git reset --hard B
git svn rebase

如果你有本地提交,我会尝试交互式rebase,然后重新运行svn rebase:

git rebase -i B
<A text editor will popup and you can remove the individual svn revisions there>
git svn rebase

如果很久以前在svn的历史中发生了变化,我可能会尝试在git中编辑一条消息是相同的,看看git-svn是否会接受它。