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 Root | wc-root | D:\svn\test |
URL | url | ///D:/svn/repository/trunk |
Relative URL | relative-url | ^/trunk |
Repository Root | repos-root-url | file:///D:/svn/repository |
Repository UUID | repos-uuid | 5f7ae1be-0772-2147-8033-dd1a53259067 |
Revision | revision | 1 |
Node Kind | kind | dir ※svn infoの出力とは 表記が異なります |
Schedule | schedule | normal |
Last Changed Author | last-changed-author | kazu |
Last Changed Rev | last-changed-revision | 1 |
Last Changed Date | last-changed-date | 2020-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'?