12

我有一个如下所示的 SVN 存储库结构。我们在分支下使用多个级别用于各种发布维护分支,以及用于功能分支的目录。

git-svn init 似乎与单个 --branches 参数一起工作,即似乎期望所有分支都在一个位置。

trunk
branches
  1.1
    1.2.1
    1.2.2
  1.2
    1.2.1
    1.2.2
    1.2.3
  features
    feature1
    feature2

关于如何处理这个问题的任何想法?

谢谢

4

4 回答 4

13

在您的配置文件中,将 svn-remotes 部分设置为:

[svn-remote "svn"]
    url = svn://svnserver/repo
    fetch = trunk:refs/remotes/trunk
    branches = branches/*/*:refs/remotes/*
    tags = tags/*:refs/remotes/tags/*

这应该让你抓住嵌套的分支。

于 2009-03-10T15:04:57.110 回答
1

按照惯例,Subversion 分支都存在于 Subversion 存储库中的单个“分支”路径中,所以我对git-svn做出这个假设并不感到惊讶。

我建议以下(注意,您可能会在此操作中丢失一些历史记录):

  1. 扁平化 Subversionbranches路径,使用命名约定来保持唯一身份和当前结构的想法。
  2. 履行git-svn
  3. 在存储库中移动内容git以符合您的实践。

的危险losing history取决于git-svn从不同路径进行复制操作的程度。我最近在迁移颠覆存储库(1.4-ish)时遇到了这个问题。

于 2008-11-03T13:48:37.850 回答
0

git为每个分支子目录创建一个 repo 是否可行?

于 2008-11-03T13:20:31.277 回答
0

您可以git svn为每个分支添加多个遥控器,或者可能为每个分支目录添加多个遥控器。最初的git svn fetch需要永远,但据我所知,它应该可以工作。

于 2008-11-06T00:00:53.403 回答