2013-10-11 202 views
1

因此,我将SVN存储库迁移到了GitHub。我使用SVN检出了迁移的存储库,并且我不小心做了一个空的提交(SVN历史记录中的r75)。为了删除空承诺,我直接用git再次检查了仓库,这个时候,并删除与承诺:完全从Subversion历史记录中删除空的git提交

git rebase -i HEAD~2

强制推到主后,GitHub上现在可以正确显示只有74号,但是当我查看SVN日志时,仍然可以看到提交为r75。

[email protected]:~/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。有没有希望?帮帮我!

+0

奇怪。它看起来像Github回购的SVN“视图”,完全忽略了通过Git进行的任何历史修改(重置/ rebase等)。可能只有Github的员工才能回答原因。 – sleske

+0

我联系了Github支持。我会张贴他们的答复作为答案。 – sleske

回答

1

这似乎是GitHub的Subversion子系统的一个普遍问题。

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

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

它看起来像这还没有记录在任何地方,虽然这可能会改变。

相关问题