我在Windows上运行svn2git,并希望从迁移过程中排除一些分支。这是如何实现的?
发布于 2015-10-29 17:07:23
svn2git从提供给它的--ignore-paths参数的排除标记生成一个正则表达式。
不幸的是,此regexp包含DOS保留字符-如| etc -这些字符没有转义。
我首先尝试使用生成的regexp生成一个正确转义的regexp,以生成我自己的--ignore-paths参数,但是DOS的保留字符/转义系统是一个真正的噩梦。
Solution ->使用Linux发行版或在windows系统上安装cygwin:
现在,您可以根据需要使用任意多的--排除参数来运行svn2git!
发布于 2019-04-08 18:43:05
正如cdup建议的那样,如果你能让它在Git for Windows自带的Git bash窗口中运行,你可能会避免很多问题。
但是,如果您愿意,可以直接在您的计算机上修改svn2git源代码来解决此问题。出现该问题的原因是,svn2git在传递给git svn的参数两边使用了单引号',而不是双引号"。下面描述的修复也适用于Windows命令提示符上下文中的other areas of svn2git。
无论如何,打开<ruby install path>\lib\ruby\gems\<version>\gems\svn2git-<version>\lib\svn2git下的migration.rb并查找下面这一行:
cmd += "--ignore-paths='#{regex}' "将其替换为(请注意,'已被转义的双引号\"替换):
cmd += "--ignore-paths=\"#{regex}\" "保存更改并重新运行svn2git。您的排除模式现在应该有效了。
https://stackoverflow.com/questions/30498339
复制相似问题