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

She*_*evy 13 svn git git-svn

我有一个SVN仓库,其布局类似于
project1/trunk
project1/branches
project1/tags
project2/trunk
project2/branches
project2/tags
等.

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

Mar*_*ner 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"]按照第一个项目的模板为每个项目创建更多部分.给每个人一个独特的名字!你需要改变fetch,branches以及tags设置使用正确的Subversion的目录名称为每个项目.

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

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

  • 这就是我想要的.为了简化,在步骤1中将-R project1-name --prefix = project1-name /添加到git svn clone命令,以使初始克隆从头开始使用正确的svn-remote名称和分支前缀. (2认同)
  • @MarkGardner:但是您必须在项目之间切换,对吗?您不能同时签出所有项目吗? (2认同)