現在、私のチームは Mercurial を使用しています。
以前の作業環境では、CVS を使用してから Subversion を使用していましたが、どういうわけか、Java クラスをチェックインしたときにフィールドが更新されるように設定されていました。
public class MyObject
{
private static final String ID = "$Id: MyObject.java 10000 2008-11-14 16:20:10Z userid $";
// rest of class
}
$Id:
先頭と$
末尾の は、正規表現の区切り文字として使用されました。コミットを行うと、ID 文字列が更新され、10000 が 10001 にインクリメントされ、日付がコミット時間に更新され、ユーザー ID がコミッターに更新されます。strings
これは、クラス ファイルに対してコマンドを実行してその文字列を読み取ることができるため、デプロイされたコードを見て、デプロイされたクラスのバージョンを正確に知る必要がある場合に便利です。
Maven やより優れたビルド/依存関係管理ツールが登場する前にこれを開始しましたが、ほとんどの場合、これはもう必要ありません。
しかし、プロジェクトがマージ/更新され、中央の Mercurial リポジトリが誰かのローカル リポジトリから再構築され、Maven のバージョン番号を元に戻してビルドが行われるという状況に遭遇しました。現在デプロイされているクラスの正確なバージョンはわかりません。
コミットまたは中央リポジトリへのプッシュでこの種の更新を行うように Mercurial を設定する方法はありますか? 何も見つかりませんでしたが、検索用語が間違っていることが原因である場合があります。