我想将 svn 修订添加到每个 git 提交标题,这样我可以看到我们 Team Foundation Server 历史中每个提交中的每个修订。
我已经尝试使用“--amend”编辑提交,但这样它只会进行新的提交(并且历史记录变得不正确)。另外我不想一个一个地编辑每个提交。 我想要存档 的屏幕截图 屏幕截图显示了我使用 --ammend 所做的事情。
我正在使用 svn2git 进行迁移。
有很多工具叫做svn2git
. 如果您不使用来自https://github.com/svn-all-fast-export/svn2git的 KDE 。我强烈建议使用该svn2git
工具。这是我所知道的最好的,并且在你可以用它的规则文件做什么方面非常灵活。
您将能够轻松地为您的布局配置它以获得您想要和期望的结果。
如果您不是 100% 了解存储库的历史记录,那么在将 SVN 存储库迁移到 Git 时,http://blog.hartwork.org/?p=763 是调查 SVN 存储库历史记录的好svneverever
工具。
使用最新合并的拉取请求,您甚至可以用它来满足您的请求。只需获取并编译源代码或等到新版本完成。然后,您可以将开关与在之后应用的--add-metadata
开关结合使用,因此在此过程中,您可以将自动添加的带有修订号的元数据移动或复制到提交消息第一行的末尾。--msg-filter
--add-metadata
--msg-filter
你可以有几个选项来做到这一点:
Modify the commit message
就像您在问题中提到的那样,您git commit --amend
实际上是在做一个rebase
. rebase
修改提交并更改 SHA-1。
您希望避免它,因此您需要在提交之前设置消息。
这就是它发生的原因,因为消息是生成 SHA-1 时计算的元数据的一部分。
Add metadata to the commit.
如果您想在提交后向提交添加额外的数据,嵌套方式就是添加notes
. Notes 不是用于生成 SHA-1 的元数据的一部分,因此您可以在提交后添加它。
git notes add -m 'Old commit is: xxxxxx'