Git svn rebase:校验和不匹配

dar*_*pot 43 svn git git-svn

当我尝试在我的存储库上执行git svn rebase时遇到问题.它显示:

Checksum mismatch: code/app/meta_appli/app_info.py
expected: d9cefed5d1a630273aa3742f7f414c83
     got: 4eb5f3506698bdcb64347b5237ada19f
Run Code Online (Sandbox Code Playgroud)

我搜索了很多但没有找到解决这个问题的方法.

如果有人知道,请分享您的知识.提前致谢.

Dom*_*nic 60

这个解决方案是唯一适合我的解决方案:

查看文件上次更改的修订号:

git svn log chrome/test/functional/search_engines.py

在该修订版本之前将svn重置为最接近的父级:

git svn reset -r62248 -p

做一个git svn fetch!

为你的成功而舞蹈.

  • 很棒的发现.从我所见,这绝对是做到这一点的方法.git svn log步骤至关重要,虽然我需要按如下方式使用它:git svn log - chrome/test/functional/search_engines.py.注意 - 在这种情况下,指示文件的路径. (4认同)
  • 另外值得一提的是,这已经出现了一两次,并且在执行git svn reset之后,git gc确保清除"搁浅"历史并且不回收.(这可能导致问题重演)你可能不必这样做,但它在我的情况下有所帮助. (4认同)
  • 为了响应git svn log - path/file我得到'致命:错误的默认修订'HEAD'.这是第一次获取,所以我没有工作副本.有什么想法吗? (4认同)
  • 一个需要更多工作的特殊情况:subversion repo有一个`svn:special =*`属性文件(符号链接),它被目标文件意外替换.这导致`git-svn`导致"文件名太长"错误,然后在subversion中修复文件后,我们得到了`git-svn`的`checksum mismatch`错误.完整的解决方案是:1)`git svn rebase --ignore-paths = <有问题的文件>`; 2)在`.git/config`中设置`core.symlinks = false`; 3)执行上面描述的`git svn reset`; 4)做`git svn rebase`; 5)从`.git/config`中删除`core.symlinks = false`.哎哟! (2认同)
  • `git svn log trunk/file.x`只向我显示一行`------------` (2认同)