Subversion リビジョン番号を取得する

更新日:

Subversionでチェックアウトしたディレクトリに対して、コマンドからリビション番号を確認したいことが良くありました。

リビジョン番号に限らずバージョン管理ツール系のコマンドはCI環境等で組み込んでしまうとすぐに忘れてしまって... そんな経験を数回繰り返しています。

最近ではGitの情報は多くありますが、Subversionだと古い情報ばかりがヒットしますよね。
そのため、自身のメモとして残しておきます。

svn info

バージョン管理されているディレクトリに対してsvn infoコマンドを実行します。

このコマンドを実行する事で、チェックアウトしているディレクトリの情報が取得できます。

svn info
Path: .
Working Copy Root Path: D:\svn\test
URL: file:///D:/svn/repository/trunk
Relative URL: ^/trunk
Repository Root: file:///D:/svn/repository
Repository UUID: 5f7ae1be-0772-2147-8033-dd1a53259067
Revision: 1
Node Kind: directory
Schedule: normal
Last Changed Author: kazu
Last Changed Rev: 1
Last Changed Date: 2020-02-23 22:44:02 +0900 (日, 23 2 2020)

出力結果をパースして取得する( ~ Ver.1.8 )

Googleで調べると出力結果をパースすると言う方法がヒットしますね。
Ver.1.9 より前の場合は、この方法になります。

findstr

Windowsには、grepがないのでfindstrを用いて、マッチする行を探します
svn info | findstr Reivision
Revision: 1

grep

svn info | grep 'Revision'

さらに数値部分だけ抜き出す等ありますが、今回の記事では不要なので書きません。

--show-item オプション( Ver.1.9 ~ )

Ver.1.9になって--show-itemオプションが追加されました。

Apache Subversion 1.9 Release Notes
https://subversion.apache.org/docs/release-notes/1.9.html#enhancements

これを使用することで、指定パラメータの値のみ出力する事が出来るようになりました。

svn info --show-item revision
1
ただし--show-itemオプションを使用し出力される結果は、--xmlを指定した場合と一緒です。つまり時間を表示した際はローカルタイム表記ではなくタイムゾーン付きの表記になります。
Path: .
Working Copy Root Path: D:\svn\test
URL: file:///D:/svn/repository/trunk
Relative URL: ^/trunk
Repository Root: file:///D:/svn/repository
Repository UUID: 5f7ae1be-0772-2147-8033-dd1a53259067
Revision: 1
Node Kind: directory
Schedule: normal
Last Changed Author: kazu
Last Changed Rev: 1
Last Changed Date: 2020-02-23 22:44:02 +0900 (日, 23 2 2020)
抽出項目 --show-item の引数出力結果
Working Copy Rootwc-rootD:\svn\test
URLurl///D:/svn/repository/trunk
Relative URLrelative-url^/trunk
Repository Rootrepos-root-urlfile:///D:/svn/repository
Repository UUIDrepos-uuid5f7ae1be-0772-2147-8033-dd1a53259067
Revision revision1
Node Kindkinddir
※svn infoの出力とは
 表記が異なります
Scheduleschedulenormal
Last Changed Authorlast-changed-authorkazu
Last Changed Revlast-changed-revision1
Last Changed Datelast-changed-date2020-02-23T13:44:02.765579Z
※svn infoの出力とは
 表記が異なります

これらのオプションは忘れたとしても試してみると、
もしかしてこれか?と教えてくれるので大丈夫です。

svn info --show-item lastchange
svn: E205000: Try 'svn help info' for more information
svn: E205000: 'lastchange' is not a valid value for --show-item; did you mean 'last-changed-date' or 'last-changed-author'?

-開発
-, ,

Copyright© 打ち聞かせ , 2020 All Rights Reserved Powered by STINGER.