2010-08-24 81 views
3

我已经克隆了一个复制的svn仓库(svnsync到本地文件系统)。所有的分支机构现在都可以在git中使用。 现在我要开始工作的svn分支git svn使用svn分支导入的仓库

git checkout remotes/B_XYZ 

,并通过混帐做一些提交。 现在我想通过

git checkout remotes/B_ABC 

,并做一些改变以及改变到一个不同的SVN分支。

而现在最后一个问题是:是否有可能提交到原来的Subversion版本库我在树枝上作出的变化(GIT)回到适当的分支?

回答

2

经过一些实验后,我想出了如何提交到不是复制的新存储库。

git svn dcommit --commit-url URL/branches/BRANCHNAME 

通过上面的命令,我可以将我在git中所做的更改提交到新的svn存储库中。

2

git svn dcommit不适合你吗?

+0

但据我了解文档的混帐SVN dcommit将致力于在那里我克隆了这是我同步的本地存储库的位置。但是我想将更改提交到不同的存储库(例如http://svn.exz.de/)? – khmarbaise 2010-08-24 18:08:12

+0

对不起,我一开始并不理解这个部分。你可能会手动添加一些遥控器,但对我来说,在单独的存储库中设置一个新的'git svn'集成(实际上与真正的'svn'回购,而不是副本)的集成会更容易,然后[ git cherry-pick'](http://www.kernel.org/pub/software/scm/git/docs/git-cherry-pick.html)进行更改。 – 2010-08-24 18:57:35

+0

我使用了一个复制的SVN存储库,导致原来的当前关闭。这就是使用复制的SVN回购代替原来的原因。 – khmarbaise 2010-08-26 12:20:07

0

如果你安装SubGit到你的SVN仓库,并用它代替混帐SVN的这是可能的。它会为你创建一个纯粹的Git仓库(不是git-svn仓库!),这样任何对它的推送都将导致SVN提交,反之亦然(由钩子触发)。任何新的分支推送都会在SVN中创建一个分支,任何标签推送都会创建一个标签。

唯一的限制是,你应该有你的SVN repostiory的访问,但它似乎正是你的情况。

要做到这一点来看

$ subgit install path/to/svn/repostiory 

链接的Git仓库会在路径/到/ SVN/repostiory/git的。