我可以git-svn克隆一个带有多个标准目录布局的svn repo

时间:2011-04-01 02:32:54

标签: svn git git-svn

我有一个SVN回购,其布局如
PROJECT1 /后备箱
PROJECT1 /枝
PROJECT1 /标签
项目2 /后备箱
项目2 /枝
项目2 /标签

由于多种原因,我想要一个git-svn repo,它允许我处理任何这些项目,并立即从/向所有项目提取/提交。这种事可能吗?我知道我可以git-svn克隆整个事情而不指定分支,标签和主干,但是我会失去使用git的很多优点。

2 个答案:

答案 0 :(得分:10)

这就是我做的。但是,可能有更简单的方法。

  1. 选择您要使用的标准布局的第一个项目并git svn clone

    git svn clone --stdlayout http://sample.com/svn/repository-name/project-name repository-name

  2. 进入repository-name目录并编辑其.git/config文件。您也可以使用git-config命令执行此操作,但我发现在文本编辑器中更容易。

  3. 您会看到已为您的第一个项目定义了[svn-remote "svn"]部分。将svn-remote重命名为比"svn"更独特的内容,可能与您的项目名称相同。例如,[svn-remote "project-name"]

  4. 按照第一个项目的模板为每个项目制作更多[svn-remote "project-name"]个部分。给每个人一个独特的名字!您需要更改fetchbranchestags设置,才能为每个项目使用正确的Subversion目录名称。

  5. 完成后,保存文件并运行git svn fetch --fetch-all。其他项目将作为远程控制器提取到本地存储库中。

  6. 要在项目之间切换master,请执行git reset --hard other-project-name/trunk,就像切换到任何其他远程Subversion分支一样。

答案 1 :(得分:1)

要解决同时检出多个项目的问题, git-new-workdir可用于检出同一git存储库中的多个工作目录,请参阅https://github.com/git/git/blob/master/contrib/workdir/git-new-workdir