CVS 自体には、commitid を設定する以外に何かを行うものはないようです。
ドキュメントの内容は次のとおりです ( info cvs
):
ではcommit
、一意の commitid がリポジトリ内の RCS ファイルに配置されます。一度にコミットされたすべてのファイルは、16 進数のみで構成される文字列である同じ commitid を取得します (通常、GNU CVS では 16、MirBSD および MirDebian GNU CVS では 19)。FSF GNU CVS 1.11、MirOS GNU CVS 1.11、および OpenBSD OpenCVS は、まだコミット ID をサポートしていません。commitid はlog
andstatus
コマンドで取得できます。*note log:: および *note File status:: を参照してください。
他のツールは、出力を解析しcvs log
て、特定のコミットの commitid を決定できます。特に、単一のcvs commit
コマンドでコミットされた変更は、同じ commitid になります。CVS リポジトリを SVN や Git などの他のシステムに変換するツールに役立つと想像できます。
しかし、そのようなツールは、この機能を持たない古いバージョンの CVS によって作成されたリポジトリを許可する必要があります。たとえば、私が CVS で維持している 1 つのファイルには 211 個のコミットがあり、そのうち最初の 186 個にはコミット ID がありません。どうやらそれは私が CVS の新しいバージョン (2007 年後半か 2008 年前半) に切り替えたときのようです。
一緒にコミットされた変更も同じタイムスタンプを共有する必要がありますが、信頼性は低くなります。タイムスタンプを作成者と組み合わせると、もう少し信頼性が高くなりますが、それでも完全ではありません.