RCSソース管理を使用しており、バイナリファイル(gifイメージとjarファイル)をチェックインする必要があります。$ Header $キーワードを追加して、チェックイン時にバージョン情報がこのファイルに置き換えられ、発行時に表示されるようにするにはどうすればよいですか。 「ident」コマンド。
Java、XMLなどのテキストファイルの場合、通常はRCSヘッダーコメントとパブリック文字列を追加しますが、バイナリファイルについてはわかりません。
RCSソース管理を使用しており、バイナリファイル(gifイメージとjarファイル)をチェックインする必要があります。$ Header $キーワードを追加して、チェックイン時にバージョン情報がこのファイルに置き換えられ、発行時に表示されるようにするにはどうすればよいですか。 「ident」コマンド。
Java、XMLなどのテキストファイルの場合、通常はRCSヘッダーコメントとパブリック文字列を追加しますが、バイナリファイルについてはわかりません。
基本的に、あなたはしません。
通常、バイナリ ファイル形式には、任意のデータの可変長チャンクを保持する方法がありません。任意のデータを含む可能性のあるファイルの領域がある場合でも、展開の長さはチェックアウトごとに異なる可能性があり (たとえば、バージョン 1.9 から 1.10 になる場合)、ファイルが台無しになる可能性があります。
これが機能するには、バイナリ形式がヘッダー文字列のサイズの変更を許容する必要があります。たとえば、バージョン番号が から1.9
に変更された1.10
場合、RCSco
コマンド (バイナリ ファイル形式を認識していない) は文字列をその場で置き換え、文字列に続くすべてのデータのオフセットを変更します。ファイル形式にコメント セクションがあり、そのセクションのサイズが数値として格納されている場合、co
はその数値を更新しません。
コンパイラで生成されたオブジェクトと実行可能ファイルには、RCS バージョン情報が含まれていることがよくありますが、通常はソース ファイルから生成されます。通常、オブジェクトと実行可能ファイル自体はバージョン管理システムに保存されません。
バイナリ ファイルを最初にチェックインする前に、 を実行rcs -i -kb filename
して、RCSco
コマンドがキーワードの置換を試みないようにする必要があります (ファイルに誤って RCS キーワードのようなものが含まれている場合に備えて)。
RCS システムからチェックアウトしたバイナリ ファイルがあり、そのバージョンを知りたい場合は、RCS の各バージョンと比較する必要があります。(私のものget-versions
はこれに役立つかもしれません。)
ファイルにテキスト メタデータを保存する方法がある場合は、バイナリ ファイルにタイムスタンプで注釈を付けることも検討できます。その後、RCS ログを確認することで、タイムスタンプをリビジョンと関連付けることができます。
あなたはExcelファイルについて言及しました。私はいくつかの実験を試みました。新しい.xlsx
形式は実際には zip ファイルです。コメント セクションに入力したものはすべて圧縮され、 には表示されませんident
。.xls
少なくとも私が試した小さなファイルの場合、古い形式はコメントセクションを読み取り可能なテキストに保存するためident
、機能しますが、ファイルをチェックインすると、RCS はコメントを から"$Header:$"
に拡張しました"$Header: /home/kst/2012-12-06/RCS/foo.xls,v 1.1 2012-12-06 11:47:48-08 kst Exp kst $"
。Excelで開こうとしたところ、次のようになりました。
Excel found unreadable content in 'foo.xls'.
内容を復元できませんでした。