2013-06-24 84 views
1

我对以下方案的正确工作流程有些遗憾。 我使用托管在颠覆回购中的谷歌代码的开源项目。我更喜欢使用git,所以我使用git-svn将svn repo克隆到git repo。 原作者仍然承诺svn回购(耶!)和我和我的团队承诺git回购。git-svn克隆一个生活在git中的回购,但从svn取回

我需要能够 - 克隆混帐回购协议(包含SVN历史) - 配置混帐,以便它可以从SVN仓库 获取 - 配置的git - svn的,使其从一个特定的版本取编号

注意:当你克隆git仓库时,所有到svn的链接都将丢失。

+0

您打算如何处理从SVN提交引起的冲突? – krlmlr

+0

我还是不明白。 SVN客户端是否被迫使用他们的“旧”代码并承诺它,或者您会对双向同步感到满意吗? – krlmlr

回答

2

SubGit可能是一个选项,他们承诺双向Git < - > SVN镜像,包括所有SVN功能。免费用于开源项目。听起来很有趣,但我还没有尝试过这个。

此外,GitHub有一个双向SVN connector具有与SubGit大致相同的一组功能。你可以简单地使用Subversion签出一个Git URL,它可以直接使用。这将需要一次性migration from SVN to Git。另请参阅:How to migrate SVN repository with history to a new Git repository?

如果这两个选项都不适合您,最安全的选择可能是分别为每个客户端git svn clone。如果身份验证不是URL的一部分,您可以随时将克隆的GitSVN工作副本部署到不同的计算机上,但这在工作流程方面是这样的...相关:git clone of git-svn tree?

(我不隶属于该公司上述所列)

+0

感谢您的回答。老实说,我不认为任何这些工具可以解决我上面解释过的问题 – roundcrisis

+0

@Miau:那么看起来我首先无法理解你的问题。 – krlmlr

+0

再次感谢您的回复。我现在看到,我没有解释,已经发生了迁移到git的情况,所以这样就可以将svn连接起来。我一直在使用git-svn将svn的更改拖到git仓库,但每次我需要从新机器上执行此操作时,这个过程都很痛苦,或者很难重现。我检查了一下子表单,看看它做了我需要的事情,我只是觉得我不了解git和git-svn。我想我需要一些看起来像git svn attach-svn-repo的命令(这样,在你克隆git repo后,你可以说你现在可以从前面提到的repo中git svn获取) – roundcrisis

0

行,所以我找到了一种方法来做到这一点

首先添加了svn回购与git这样

[svn-remote "svn"] 
    url = http://url/to/repo/svn/trunk 
    fetch = :refs/remotes/git-svn 

注意配置文件:如果你的混帐回购协议是干什么用的成为后备箱,确保你将它包含在中url

然后用svn调用git svn fetch(取回之后)是svn-remote的名称,-r832代表-r(修订版),832代表我们想从

开始的subversion修订号
git svn fetch svn -r832 

之后,我叫 混帐SVN变基和重订所有选秀权在它结束时,我得到了一个消息,说我应该可能是由于被重订的所有更改创建一个分支,我也然后我切换掌握并合并来自刚刚创建的分支的更改。 现在我可以SVN的git从回购获取:d

如果有比这更好/更短的方式,将是巨大的听到它:)