【问题标题】:Importing a Subversion repository with a non-standard layout into Git将具有非标准布局的 Subversion 存储库导入 Git
【发布时间】:2011-04-24 00:56:57
【问题描述】:

我正在尝试(永久)将我小组的 Subversion 存储库迁移到 Git,但在尝试清理其非标准目录结构时遇到了问题。

项目的一些内容包含在主干和分支文件夹中,但不是全部。 Subversion 上的项目布局如下:

project/trunk/
project/branches/feature_1
project/branches/feature_2
project/libraries
project/crontab
...

导入后,我希望 Git 存储库的布局如下:

project/html # the content of the old trunk and branches folders
project/libraries
project/crontab
...

使用适当的选项运行svn2git 将正确处理主干和分支目录,但我如何还包括其他文件夹的历史记录? git-filter-branch 似乎可以提供帮助,但我不确定如何使用它。

【问题讨论】:

标签: svn git git-svn git-filter-branch


【解决方案1】:

将 repo 的每个主子文件夹导入到单独的 git repo 中,然后使用 subtree merging 方法将 git repos 合并到一个 repo 中。不过,您最终可能会遇到一些重复的提交。

如果你有很多子目录,你可能想要做一个svnadmin dump,然后svndumpfilter exclude .. 两次将你的svn repo分成两半,然后使用子树合并方法重新加入它们。这将比进行许多子树合并具有更清晰的历史记录。

【讨论】:

    猜你喜欢
    • 2010-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-22
    • 1970-01-01
    • 1970-01-01
    • 2011-12-31
    • 1970-01-01
    相关资源
    最近更新 更多