svn2git - 是否需要提前在 Git 中创建 SVN 中的所有作者?

svn2git - do all authors in SVN need to be created in Git ahead of time?

我正在查看 svn2git 以进行一些转换,但对一件事感到困惑。在我们的 SVN 回购历史中,有很多人进行了更改并提交了代码,但他们已经不在了。即使他们不再在公司工作,我是否需要在 Git 中创建他们的帐户才能进行转换?

您不需要创建帐户——但根据常见的导入程序,他们需要在文件中输入一个条目 authors.txt 您引用以提供 svn 帐户(名称)到电子邮件(作为 ID)的映射在 git.

中使用

例如我已经为几十个 repos 完成了以下操作:

git svn clone svn+ssh://user@host/svnroot/repo gitrepo \
        --no-metadata  -A authors.txt

如果 authors.txt 中缺少用户,则进程中止。

有很多名为 svn2git 的工具,最好的可能是来自 https://github.com/svn-all-fast-export/svn2git 的 KDE。我强烈建议使用 svn2git 工具。这是我所知道的最好的,而且你可以非常灵活地使用它的规则文件。

根据你的问题,我假设你没有使用我提到的那个。如果没有另外配置,默认情况下使用 <svnusername>@localhost 。您可以为该工具提供一个默认主机名,以便默认使用 <svnusername>@your-host.com 或(另外)您可以提供一个包含映射的文件,将用户映射到提交者/作者字符串,例如 Your name <your.name@your-host.com>.

您永远不需要在任何地方创建任何用户。唯一需要帐户的人是必须将 repo 推送到 Git 服务器的人。其他人只是他推动的历史中的提交者/作者。提交/作者的人和推动的人是两个完全独立的群体,可以重叠但不必重叠。只有推送者需要有权推送您的 Git 托管解决方案。

如果您不是 100% 了解存储库的历史,http://blog.hartwork.org/?p=763 中的 svneverever 是一个很好的工具,可以在将 SVN 存储库迁移到 Git 时调查它的历史.