[英]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.