Mercurial リポジトリーのチェンジセット ID を成果物に取り込む
Mercurial で管理しているプログラムや文書などにチェンジセット ID を取り込んでバージョン番号みたいに使いたいと考えていました。
最初は hg log の出力からスクリプトで抽出する方法を考えましたが、 hg identify で取得できることがわかりましたので簡単にできます。
ビルドする場合、Make を使うので Makefile 内で チェンジセット ID を取り込んでみます。
これで Makefile の変数 changeset にチェンジセット ID が取り込まれました。
アーカイブからのビルドでもちゃんと動きます。
あとは
みたいに自由に使用できます。
最初は hg log の出力からスクリプトで抽出する方法を考えましたが、 hg identify で取得できることがわかりましたので簡単にできます。
ビルドする場合、Make を使うので Makefile 内で チェンジセット ID を取り込んでみます。
ifneq ($(wildcard .hg_archival.txt),) changeset = $(shell $(awk) 'match ($$1, /node:/) { print substr($$2, 0, 12) }' .hg_archival.txt) endif ifneq ($(wildcard .hg),) changeset = $(shell $(hg) identify --id) endif changeset? = unknown
これで Makefile の変数 changeset にチェンジセット ID が取り込まれました。
アーカイブからのビルドでもちゃんと動きます。
あとは
CHANGESET.txt: $(src) @echo $(changeset) > $@
みたいに自由に使用できます。
コメント
コメントを投稿