从Subversion历史记录中完全删除空的git提交

时间:2013-10-11 22:49:31

标签: git svn version-control github git-svn

所以我将SVN存储库迁移到GitHub。我使用SVN检出了迁移的存储库,并且我意外地进行了空提交(SVN历史记录中的r75)。为了删除空提交,我再次检查了存储库,这次直接使用git,并删除了提交:

git rebase -i HEAD~2

强制推送到主控后,GitHub现在只能正常显示74次提交,但是当我查看SVN日志时,我仍然可以看到提交为r75。

zmurray@zmurray-linux:~/blah$ svn log -r 75
------------------------------------------------------------------------
r75 | zachary.murray | 2013-10-11 15:05:05 -0700 (Fri, 11 Oct 2013) | 2 lines

Blah blah blah, I'm a dumb stupid SVN commit message I can't seem to kill.

------------------------------------------------------------------------

我只想一劳永逸地消除这个愚蠢的消息。 r75之后没有其他提交,我真的想让r74再次成为HEAD。没有希望吗?救命啊!

1 个答案:

答案 0 :(得分:1)

这似乎是GitHub的Subversion子系统的一般问题。

基于某些测试,它无法很好地处理使用git(reset / rebase等加git push -f)更改历史记录的存储库。随后的svn checkout + svn日志将只显示存储库的旧历史记录,或显示不同的中间提交,以至少在最终提交中达到相同的文件系统状态。

我联系了GitHub,他们证实了这一点。显然它主要是这样做的,因为Subversion假设历史永远不会改变,因此显示Subversion客户端的新/更改提交将使所有Subversion工作副本无效。

看起来这还没有在任何地方记录,尽管这可能会改变。