如何将两个 git 分支推送到单独的 svn 存储库?特别是使用 sourcetree
How to push two git branches to seperate svn repositories? Especially using sourcetree
我有一个本地 git 存储库,它用
初始化
git svn init http://abc.xxx/svn/trunk/topic_A
然后我在本地创建了一个分支topic_B,想放到svn下URLhttp://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分支。
而且似乎没有办法改变颠覆的推送目的地。
谁能想出正确的方法?非常感谢!
您只需将 [svn-remote "topic_B"]
重命名为其他名称,这样就不会发生冲突。
And it seems there is noway you can change the push destination of subversion.
另一种选择是通过命令行而不是配置文件来设置它:
git config --add svn-remote.topic_B.url ...
git config --add svn-remote.topic_B.fetch :refs/remotes/topic_B
这将生成与您的问题相同的输出。
好吧,我认为这就是答案,但仍然不是我的完整解决方案。而且我认为已经找到了一种方法来做我实际要做的事情:
- git 按照@CodeWizard 的说明配置 svn-remote;
git svn fetch topic_B
;
- 使用
git branch
在当前分支上创建新分支
分支 ;
- 将当前分支重新设置为 topic_B;
git svn dcommit
。而这次它将被推送到正确的 svn URL.
这只是一个简单的想法演示。实际问题总是比这更复杂。例如,当topic_B不创建为空目录时,作为SVN的习惯,往往是将trunk复制到branches/topic_B目录下。而且 rebase 过程会很有趣。
我认为这可以通过读取树或樱桃采摘或应用补丁来解决,例如如果只需要更改一个子目录或几个文件。但是,我对这些评论不是很熟悉,如果有人可以参考现有解决方案,那就太好了
我有一个本地 git 存储库,它用
初始化git svn init http://abc.xxx/svn/trunk/topic_A
然后我在本地创建了一个分支topic_B,想放到svn下URLhttp://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分支。
而且似乎没有办法改变颠覆的推送目的地。
谁能想出正确的方法?非常感谢!
您只需将 [svn-remote "topic_B"]
重命名为其他名称,这样就不会发生冲突。
And it seems there is noway you can change the push destination of subversion.
另一种选择是通过命令行而不是配置文件来设置它:
git config --add svn-remote.topic_B.url ...
git config --add svn-remote.topic_B.fetch :refs/remotes/topic_B
这将生成与您的问题相同的输出。
好吧,我认为这就是答案,但仍然不是我的完整解决方案。而且我认为已经找到了一种方法来做我实际要做的事情:
- git 按照@CodeWizard 的说明配置 svn-remote;
git svn fetch topic_B
;- 使用
git branch
在当前分支上创建新分支 分支 ; - 将当前分支重新设置为 topic_B;
git svn dcommit
。而这次它将被推送到正确的 svn URL.
这只是一个简单的想法演示。实际问题总是比这更复杂。例如,当topic_B不创建为空目录时,作为SVN的习惯,往往是将trunk复制到branches/topic_B目录下。而且 rebase 过程会很有趣。
我认为这可以通过读取树或樱桃采摘或应用补丁来解决,例如如果只需要更改一个子目录或几个文件。但是,我对这些评论不是很熟悉,如果有人可以参考现有解决方案,那就太好了