在 SubGit 导入的 Git 提交消息中添加 Subversion 修订版

Add Subversion revision in Git commit message on SubGit import

我正在使用简单的准时导入将现有 SVN 存储库迁移到 GIT。

$ subgit import --svn-url http://svn/repo repo.git

一切正常,但是是否有机会在 SubGit 创建的每个 GIT 提交中包含相应的 SVN 修订号?

目前没有这样的功能,但是有类似的功能。

当您设置对 Git 存储库的访问时,在克隆它之后,您可以遵循 SubGit book 的建议。 IE。编辑 .git/config 文件以设置

[remote "origin"]
...
fetch = +refs/svn/map:refs/notes/commits

然后是运行

git fetch

下载Git notes。之后 "git log" 将显示修订号。

此外,如果您需要从脚本中通过 SHA-1 哈希查找修订号,反之亦然,您可以 运行

git log --all --format="%H %N"

输出可能如下所示:

669d570bc561023034c7b28fd6e0a369662b1258 
aa628cf9ac100bb144f50490d403e2dcacfd0842 r3624 trunk

db76bb8572f62169a9a28532890610b5a6c234c9 
c5b2a475ce5fce72a620064b7b9507af2ec10212 r3623 branches/feature

a5938100859e6d1a245f84907acd33cf8092eb96 
086773418197047b523cda6e892441b1364c56f7 r3622 branches/feature

f47b87de14a9d476cd8efd708e0571512875faf9 
fb8edc1b9ad1668c1930f8db6f6e43c08d02baa1 
64fd8ef37200438dd4068255ff56ac09e73a8259 
00cc3cc581593c90155569fadb47c0d99565a362 
7ca753c7c8ae572ceff235eb8f68d1e8805f0bc4 r3621 branches/feature

827a04ebede055a6847b52d416efe04b9e81511e r3620 branches/feature

之后您可以使用 grep、awk、sed 和其他您喜欢的工具通过修订查找 SHA1,反之亦然。

没有修订号的行对应于 Git 注释本身(Git 提交的注释存储在其他 Git 提交中)并且只是 Git 没有注释的提交,即不是从 SVN 翻译过来的。带有注释的提交后添加空行,因为注释末尾包含 LF 字符; grep 和 awk 擅长忽略它们。

我希望这比将修订直接放入提交消息更方便。

最后我要补充一点,这不仅适用于导入,还适用于连续同步。

我是 SubGit 开发人员之一。