0

让存在具有以下目录结构的 Git 存储库(它是从 SVN 转换而来的):

/
Release 1
  sub_dir1
    somefiles1
  sub-dir2
    somefiles2
Release 2
  sub_dir1
    somefiles1
  sub-dir2
    somefiles2
Release 3
  sub_dir1
    somefiles1
  sub-dir2
    somefiles2
...

SVN repo历史注释:

每年都有一些切割器机构采用最新版本并将其复制到同一回购中具有下一个编号的新版本。所以任何版本的子目录/文件结构几乎相同。但是每个版本都有不同的历史时期。


对于每个提交(漏洞仓库) 如何: 1 将所有 ReleaseX 根重命名为一个名为“Release”的目录?2 为所有版本的任何文件保留/统一提交历史?

结果仓库必须如下所示:

/
Release
  sub_dir1
    somefiles1
  sub-dir2
    somefiles2

或者,我可以将每个 ReleaseX 从 svn 重新转换为单独的 repoX。对于每个 repoX,我需要将 ReleaseX 重命名为 Release。比我需要联合所有回购...... Ugrhh。但我认为这是一个rakeway

4

1 回答 1

0

目前的方法似乎过于复杂。

需要咀嚼的东西:

您是否考虑过为每个版本创建单独的分支,而不是每次都创建一个新目录?快速git checkout release-1将带您到第 1 版源——类似于cd release-1/

--o---o---o---o---o---o---o---o---o---o---o---o--- o---o-Master/最新版本
  | | |
   \--release-1 \--release-2 \--release-3

这允许您将git merge任何您想要的分支放在一起。这种方法还可以减少你的回购规模(奖金!),这对于性能来说总是好的。

可能的灵感: http: //nvie.com/posts/a-successful-git-branching-model/

这也允许更容易修补。您可以在 release-1 上进行修复,然后很容易地为其他版本生成补丁。

于 2013-07-26T19:36:21.960 回答