我有一个用
初始化的本地git存储库git svn init http://abc.xxx/svn/trunk/topic_A
然后我创建了一个本地分支topic_B,并希望将其放在svn URL http://abc.xxx/svn/branches/topic_B下。 svn分支是使用svn客户端创建的。 所以我不需要在git中创建svn分支。
我应该如何修改.git / config文件来添加它?
我尝试添加:
[svn-remote "topic_B"]
url = https://abc.xxx/branches/topic_B/
fetch = :refs/remotes/topic_B
[branch "topic_B"]
remote = .
merge = refs/remotes/topic_B
但是,当从控制台使用git时,git commit
总是选择中继URL作为推送目的地?
在sourcetree中,GUI似乎很难获取新添加的远程svn分支。
现在看来你可以改变颠覆的推送目的地。
任何人都可以找到正确的方法吗?非常感谢!
答案 0 :(得分:1)
您可以简单地将[svn-remote "topic_B"]
重命名为其他名称,这样就不会发生冲突。
现在看来你可以改变颠覆的推送目的地。
另一种选择是将其设置为VIA命令行而不是配置文件:
git config --add svn-remote.topic_B.url ...
git config --add svn-remote.topic_B.fetch :refs/remotes/topic_B
这将生成与您的问题相同的输出。
答案 1 :(得分:0)
嗯,我认为这是答案,但仍然不是我的完整解决方案。而且我认为已经找到了一种方法来实现我实际上应该做的事情:
git svn fetch topic_B
; git branch
在当前创建新分支
分支git svn dcommit
。这次将推送到正确的svn URL。这只是一个简单的想法。实际问题总是比这更复杂。例如,当topic_B不是作为空目录创建时,作为SVN自定义,通常通过将trunk复制到branches / topic_B目录来完成。而且,变革过程会很糟糕。
我认为这可以通过读取树或挑选樱桃或通过应用补丁来解决,例如如果只需要更改一个子目录或只有几个文件。但是,我对这些评论并不十分熟悉,如果有人可以对现有解决方案给予反思,那就太好了