2018年以降の記事はGitHub Pagesに移行しました

svn updateコマンド以外でリビジョン番号を抜き出す

あらすじ

svnのリビジョン番号だけ抜き出したい。アップデートなしで! svn updateするとリビジョンは出てくれるんだけど、アップデート走らせないようにリビジョン番号だけ抜き出したい。

$ svn up
リビジョン 111 です

続編

以下はとてもめんどくさい方法での実現となります。

試行錯誤

svn log

svn logで表示したリビジョンを抽出する。limit N で出力するログを制御。

$ /usr/local/bin/svn log --limit 1
------------------------------------------------------------------------
r111 | kk_Ataka | 2011-12-17 11:51:11 +0900 ((金), 17 12月 2011) | 3 lines

コミットログ
...
...

まずは最新ログをひとつだけ取得。

grep

次にリビジョンが記載してある行だけ抽出。

$ /usr/local/bin/svn log --limit 1 | grep ^r.*lines$
r111 | kk_Ataka | 2011-12-17 11:51:11 +0900 ((金), 17 12月 2011) | 3 lines
sed

最後にその行からsedコマンドで「rXX」だけを抜き出し。

$ /usr/local/bin/svn log --limit 1 | grep ^r.*lines$ | sed -e "s/^\(r[0-9]*\) .*/\1/g" 
r111

めんどくさ! なんか使ったことないコマンドから一発で出せる気がする……。