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

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

もっとよい方法

どう考えても他にやり方があるだろうと思っていたらやっぱりあった。@jun66j5さんよりTwitterで教えてもらいました。ありがとうございます。

svn infoコマンドで見られるのか。というわけで(全然使ってない)プロジェクトで試してみた。まず普通。

$ svn info
パス: .
URL: file:///home/kk_Ataka/svn/xxxx
リポジトリのルート: file:///home/kk_Ataka/svn/xxxx
リポジトリ UUID: 99999999-9999-9999-9999-999999999999
リビジョン: 4
ノード種別: ディレクトリ
準備中の処理: 特になし
最終変更者: user
最終変更リビジョン: 4
最終変更日時: 2010-12-29 21:31:44 +0900 (水, 29 12月 2010)

ロケールをen_USに。

$ LC_ALL=en_US.UTF8 svn info
Path: .
URL: file:///home/kk_Ataka/svn/xxxx
Repository Root: file:///home/kk_Ataka/svn/xxxx
Repository UUID: 99999999-9999-9999-9999-999999999999
Revision: 4
Node Kind: directory
Schedule: normal
Last Changed Author: user
Last Changed Rev: 4
Last Changed Date: 2010-12-29 21:31:44 +0900 (Wed, 29 Dec 2010)

xml形式で出力もできる。

$ svn info --xml
<?xml version="1.0"?>
<info>
<entry
   kind="dir"
   path="."
   revision="4">
<url>file:///home/kk_Ataka/svn/xxxx</url>
<repository>
<root>file:///home/kk_Ataka/svn/xxxx</root>
<uuid>99999999-9999-9999-9999-999999999999</uuid>
</repository>
<wc-info>
<schedule>normal</schedule>
</wc-info>
<commit
   revision="4">
<author>user</author>
<date>2010-12-29T12:31:44.294483Z</date>
</commit>
</entry>
</info>

ってことは、これをgrepすれば……。

$ LC_ALL=en_US.UTF8 svn info | grep Revision
Revision: 4

簡単にとれた! けど、ちゃんと調べないといかんなーこんな簡単に取れるものを敢えて難しくとる必要ないしな。