在使用git-svn下拉(相当大)的svn repo的过程中,我遇到了以下错误消息(替换为真实信息的通用信息):
Found possible branch point: svn://server/project/trunk/dir => svn://server/project/branches/branchname, <revision>
Initializing parent: refs/remotes/branchname@<revision>
project/trunk/dir/file was not found in commit <hash> (r<revision>)
Run Code Online (Sandbox Code Playgroud)
我在其他帖子中读过,可以通过一些修补来"取消"这些信息.但是,我宁愿不要失去历史,尽可能无痛地前进.
我怎样才能git-svn fetch继续?
Ben*_*son 29
这可能意味着您正在接收一个新的svn修订版,该修订版修改了一个文件(由于某种原因)在您的git commit中不存在等同于父svn修订版的文件.导致这种情况的一种非常简单的方法是与之不一致--ignore-paths(最初没有办法配置它们,并且必须在每个git-svn可能获取的命令行上输入它们).另一种方法是让svn服务器端的某个人更改存储库权限,以便突然出现(从您的角度来看)您的git存储库没有历史记录的整个文件子树.
通过这个直接问题并继续的最简单方法git-svn fetch是使用--ignore-paths(或更好的svn-remote.svn.ignore-paths配置条目)忽略树的问题部分.您可以使用命令行参数来传递单个修订版,直到有人在svn端修改它时才会再次遇到问题.
如果您想在没有 恢复的情况下进行恢复,--ignore-paths则需要修复父修订版,以便它包含要修改的文件.我git-svn reset专门写了一些你不太修补的"取消".它可以将您的svn遥控器重置回文件真正创建的位置,以便将其集成到历史记录中.这不会消除您的工作副本,但您需要在此新历史记录中重新显示任何工作分支.