我试图在svn2git的帮助下将SVN项目迁移到git。执行命令时,退出时出现以下错误:
Running command: git branch --track "0.0.9" "remotes/svn/0.0.9"
fatal: Cannot setup tracking information; starting point 'remotes/svn/0.0.9' is not a branch.
开始时:
svn2git http://<host>/<project>
我找不到任何解决方案,似乎没有多少用户遇到同样的问题。
我该怎么做才能解决这个问题?
我使用Debian Sid遇到了同样的问题(“git”的版本是1:1.8.3.2-1)。在我使用股票“git”包(1:1.7.2.5-3)在Debian Squeeze上失败之前。
最后我最终使用了squeeze-backport存储库(1:1.7.10.4-1~bpo60 + 1),现在它可以工作了。
你用的是什么版本的Git?
这应该解决它:
改变这一行 https://github.com/nirvdrum/svn2git/blob/master/lib/svn2git/migration.rb#L319
从 run_command("git branch --track \"#{branch}\" \"remotes/svn/#{branch}\"")
至 run_command("git branch \"#{branch}\" \"remotes/svn/#{branch}\"")
应该解决它。
至少它现在对我没有任何问题。
你可以找到 migration.rb
Windows下的文件 C:\Ruby200-x64\lib\ruby\gems\2.0.0\gems\svn2git-2.2.2\lib\svn2git
或类似的东西
https://github.com/nirvdrum/svn2git/issues/132#issuecomment-31453436
我想在不更改代码的情况下为此添加快速而肮脏的解决方案!
每次出现错误时,只需手动更改分支并继续执行 svn2git
命令。
所以要完成工作流程:
运行命令
svn2git ....
得到了错误
Running command: git branch --track "0.0.9" "remotes/svn/0.0.9"
fatal: Cannot setup tracking information; starting point 'remotes/svn/0.0.9' is not a branch.
手动更改分支(复制 Running command:
排队和删除 --track
)
branch "0.0.9" "remotes/svn/0.0.9"
继续 svn2git
svn2git ...
注意 ...
之后 svn2git
以上是你的svn2git命令
如果你有少量的分支机构并且不想降级git,这是一种解决问题的方法。运行“git branch -r”以获取分支列表。然后为每个分支运行以下命令(例如,名为svn / next_branch):
$ git branch "next_branch" "remotes/svn/next_branch"
唯一的区别是删除了“--track”选项。
那是应用于此的修复 Github问题