2012-02-09 83 views
1

我正在一个项目中有两个SVN仓库。一个用于外部使用,我们与项目的合作伙伴进行交互,另一个用于纯粹的内部使用。用git在本地保存代码到多个SVN仓库

我有一个文件夹(src)存在于外部存储库上。我希望将该代码保存在内部存储库的第二个src文件夹中,以便能够在内部进行提交,并且在代码稳定时提交到外部存储库。

除此之外,我想用git在本地机器上管理代码。

为此,我看了一下git-svn。

任何人都可以解释管理这个最好的方法吗?我倾向于为每个svn repo(localsvn和externalsvn)设置一个分支,并使用local作为默认值,当我想要提交到它时合并到外部,并让git在后台运行。

回答

0

我已经处理了这个问题的当前方式是有两个单独的代码版本。分支系统不适合我。

我有一个远程仓库的版本,使用git-svn进行管理,还有一个本地仓库的版本,也使用git-svn进行管理。当我想从本地移动到远程或反之时,我只需使用脚本移动代码,然后合并,最后上传。

0

这应该是可能的,但你需要玩git svn的更深奥的功能之一:-R(远程名称选项)。

创建一个git svn存储库使用git svn init作为正常的本地代码,然后看看.git/config文件。将会有一个名为[svn-remote "svn"]的部分。复制整个部分,将其重命名为[svn-remote "external"],编辑url字段以指向外部存储库,然后更新其他字段以为其指定唯一的名称。

我期望配置文件的相关部分看起来像这样大功告成后:

[svn-remote "svn"] 
    url = http://local.svn/repository/root 
    fetch = trunk:refs/remotes/trunk 
    branches = branches/*:refs/remotes/* 
    tags = tags/*:refs/remotes/tags/* 
[svn-remote "external"] 
    url = http://external.svn/repository/root 
    fetch = trunk:refs/remotes/ext-trunk 
    branches = branches/*:refs/remotes/ext-* 
    tags = tags/*:refs/remotes/tags/ext-* 

如果你现在要做git svn操作,它会从本地存储库中取出。如果您添加了-Rexternal,您将转而使用外部存储库。要进行初始抓取,您需要同时运行以下两项:

git svn fetch 
git svn fetch -Rexternal 
相关问题