获取svn HEAD git提交号?

3
在常规的Git中,我可以运行以下命令:
git rev-parse HEAD

如何获取svn HEAD版本号,而不是git HEAD版本号?

我知道可以通过查看具有git-svn-id的最后一次提交的git日志来手动获取它。此外,在查看log pretty-format的手册时,有一种方法可以获取引用名称(%d),在HEAD svn提交的情况下显示为git-svn。

谢谢。


可能是重复的问题:如何确定我的git-svn仓库基于哪个svn版本? - CharlesB
欢迎来到SO,感谢您分享您的解决方案! - CharlesB
1
感谢欢迎。 我不认为这是重复的,因为我正在寻找Git哈希而不是SVN提交修订号。 - Klugscheißer
抱歉误读了两篇帖子。对于Git,请使用提交哈希而不是提交编号。 - CharlesB
2个回答

3

这个方法有点取巧,欢迎改进。我已经将别名添加到了我的 git 配置文件中:

svnhead = log --grep=git-svn --pretty=format:'%h' -n 1

现在我可以调用

git svnhead 

返回短的git提交哈希值,我可以将其传递给

git rebase -i $(git svnhead)

例如,对于交互式变基,您需要从svn head提交的所有内容进行变基。
编辑 9/23/13:
我最近意识到可以使用rev-parse来完成此操作:
git rev-parse master

如果您的主分支跟踪 SVN 存储库,或者
git rev-parse git-svn 

2
这可能是一种hack,但它与git-svn使用的相同。根据man页面:git log --grep=^git-svn-id: --first-parent -1(请参见https://www.kernel.org/pub/software/scm/git/docs/git-svn.html#_caveats的“CAVEATS”部分) - Shadow Man

2

git svn find-rev HEAD会给你SVN版本号。

git svn find-rev r$(git svn find-rev HEAD)会给你该版本的git提交哈希值。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接