4

我们从一个新的、空的 subversion 存储库和一个现有的 git 存储库开始,我想“推送”并保留所有历史记录和作者身份(如果可能的话,甚至只是用户名)。

使用“git svn dcommit”,我可以在 subversion repo 的历史记录中看到修订评论,但作者详细信息默认为我在 subversion 中的用户名,提交日期变为今天的日期,即推送日期,而不是 git 中的初始提交。

是否有方法可以像 BZR->SVN 一样覆盖这些感兴趣的属性,使用 bazaar.conf 覆盖和修改 pre-revprop-change 钩子,但这次是 Git?

谢谢。

4

1 回答 1

3

你不能使用 git-svn 保留作者和日期(你也不能保留忽略、匿名分支和使用它的复杂历史)。

为了将 Git 存储库转换为 SVN,保留所有使用SubGit项目:

$ svnadmin create svn.repo

$ subgit configure svn.repo

$ #edit svn.repo/conf/subgit.conf ('git.default.repository' option) 
to set path to your bare Git repository (the repository you on the server
or you can prepare new bare repository
with "git clone --bare <Git URL> path/to/bare/git/repo")

$ #optionally prepare svn.repo/conf/authors.txt file
to configure custom authors mapping

$ subgit install

安装后 SubGit 会同步 SVN 仓库 svn.repo 和 Git 仓库 path/to/bare/git/repo 并保持同步,这样任何对 SVN 的提交都会导致 Git 提交,反之亦然(同步由钩子驱动,并发-safe,所以你仍然可以继续使用 Git)。

停止连续同步运行

$ subgit uninstall svn.repo
于 2012-07-26T00:37:26.677 回答