2012-04-13 22 views

答えて

8

私たちは、メイクファイルに次のような行を使用します。

メイク変数に作業コピーのリビジョン番号を格納
REPO_REV := $(shell svnversion -n) 

。これをCコードで使用するには、メイクファイルにその値を使用してコンパイラのコマンドラインにマクロを定義させることができます(gccの場合は-DREPO_REV=$(REPO_REV)など)。

4

新規ユーザーは、多くの場合、$Rev$キーワードがどのように機能するかで混乱しています。リポジトリには、全体的に増加するリビジョン番号が1つあるため、多くの人が$ Rev $キーワードの値に反映されるのはこの番号であると想定しています。しかし、$Rev$は、最後に更新されたリビジョンではなく、ファイルが変更された最後のリビジョンを表示するように展開されます。これを理解すると混乱は解消されますが、Subversionのキーワードをサポートしなければ、自動的にグローバルリビジョン番号をファイルに取り込むことはできますか?

これを行うには、外部処理が必要です。 Subversionには、この目的のために設計されたsvnversionというツールが付属しています。作業コピーをクロールし、見つかったリビジョンを出力として生成します。このリビジョン情報をファイルに埋め込むために、このプログラムといくつかの追加ツールを使用することができます。 svnversionの詳細については、第9章「Subversion完全リファレンス」の“svnversion—Subversion Working Copy Version Info”を参照してください。

関連する問題