[英]How do I show the SVN revision number in git log?
我正在将我的git日志定制为1行。 具体来说,我添加了以下别名:
lg = log --graph --pretty=format:'%Cred%h%Creset - %C(yellow)%an%Creset - %s %Cgreen(%cr)%Creset' --abbrev-commit --date=relative
所以,当我运行git lg
,我看到以下内容:
* 41a49ad - zain - commit 1 message here (3 hours ago)
* 6087812 - zain - commit 2 message here (5 hours ago)
* 74842dd - zain - commit 3 message here (6 hours ago)
但是,我想在那里添加SVN修订号,所以它看起来像:
* 41a49ad - r1593 - zain - commit 1 message here (3 hours ago)
正常的git log
显示SVN版本号,所以我确信这一定是可行的。 我该怎么做呢?
跑:
git rev-parse HEAD
它给你git commit hash。
然后使用该提交哈希运行:
git svn find-rev <commit_hash>
这给你svn修订版。
当你说“正常的git log
显示你的SVN版本号”时,我想你的意思是你正在处理由git svn
处理的存储库,默认情况下,它会在同步提交的末尾添加这样的一行:
git-svn-id: svn://path/to/repository@###### <domain>
现在,就git而言,这只是随机文本,所以我怀疑你可以找到一个%
访问器来从那里读取######
版本号。
此时,您最好的选择就是自己解析普通git log
的输出。 这是一个粗略的起点:
git log -z | tr '\n\0' ' \n' | sed 's/\(commit \S*\) .*git-svn-id: svn:[^@]*@\([0-9]*\) .*/\1 r\2/'
结束了这样的事情:
git svn log --oneline -1 | cut -d '|' -f1
这给了repo的最后一次修改(你可以调整git svn log
参数来显示另一个修订版,但是保持--oneline
和-1
),但是有一个尾随空格(类似"r9441 "
),我觉得应该很容易剥离。
希望能帮助到你...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.