以下命令
svn log -g
在我的存储库上执行的会返回大量日志信息,但最终会以
消失svn: Pathname not terminated by ':'
这里的故事是,过去有人手动编辑了合并信息(因为他们使用的是git-SVN桥接器,但是看起来mergeinfo没有正确修复。
不幸的是,这会导致我的IDE出现问题,因为它正在执行命令
svn log --xml --with-all-revprops -r HEAD:1 -v -l 101 -g
在执行使用相同错误消息的合并之前针对存储库。
我们如何修复存储库以摆脱这场噩梦?
答案 0 :(得分:0)
您可以使用以下命令手动编辑目录或文件上的mergeinfo:
$ svn propedit svn:mergeinfo <directory>
这将在文本编辑器中打开mergeinfo,默认为vi。编辑,保存并退出。然后提交更改:
$ svn commit <directory>
答案 1 :(得分:0)
我认为您可以使用此命令找到损坏的svn:mergeinfo
:
svn pget svn:mergeinfo -R . | grep -v :
这将打印缺少冒号的svn:mergeinfo
行。
有效svn:mergeinfo
行通常如下所示:
trunk - /branches/feature1:8
其中trunk
是具有svn:mergeinfo
属性的路径,/branches/feature1
是合并的路径(在此示例中为trunk
),冒号后已合并的修订号和范围列表,例如8,11-15,41,44
。
<强>更新强>
本文可能相关:http://limedaley.com/post/changing-paths-while-migrating-subversion-repositories
在该示例中,svn:mergeinfo
内容被错误地重写,但在我看来,这将导致完全破坏的存储库,这与您的情况不同,所以我不知道....
也许一种可能的解决方案是删除所有svn:mergeinfo
属性,看看是否能解决您的问题,然后在以后正确添加它们。你可以删除这样的属性:
svn propdel svn:mergeinfo -R .