2013-07-25 41 views
3

在常规的混帐我可以运行抓住svn HEAD git commit number?

git rev-parse HEAD 

到Git的最新版本号。我将如何获得svn HEAD修订版号码?

我知道我可以通过在git的日志寻找最后用的git - svn的-ID提交手动抓住它。 另外,通过查看日志漂亮格式的手册,有一种方法可以获取ref名称(%d),在HEAD svn commit的情况下显示为git-svn。

谢谢。

+0

的可能重复[我怎样才能知道SVN版本我混帐SVN仓库的依据是什么?(http://stackoverflow.com/questions/7154244/how-can-i-tell-what-svn-version -my-git-svn-repository-is-based-on) – CharlesB

+0

欢迎来到SO,感谢您分享您的解决方案! – CharlesB

+1

感谢您的欢迎。我不认为它是重复的,因为我在寻找git散列而不是SVN提交版本号。 –

回答

3

这是一个黑客攻击的一位和我欢迎的改进,但在这里就是我这么远。

我已经添加了一个别名到我的混帐配置:

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

现在我可以打电话

git svnhead 

返回短git的承诺散,我可以将它传递给

git rebase -i $(git svnhead) 

例如交互式重订一切从SVN头承诺。

EDITED 13年9月23日

最近,我意识到了这一点,可以使用REV-解析完成:

git rev-parse master 

,如果你的主分支跟踪SVN回购协议,或

git rev-parse git-svn 
+1

这可能是一种黑客攻击,但它与'git-svn'使用的相同。根据手册页:'git log --grep =^git-svn-id:--first-parent -1'(参见https://www.kernel.org/pub/software/scm的'CAVEATS'部分/git/docs/git-svn.html#_caveats) –

2

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

git svn find-rev r$(git svn find-rev HEAD)将为您提供该版本的git commit散列。