svnとcvsを見ている間、私はRCSとRCSキーワードを見続けます。RCSとは何か、RCSキーワードとは何かわかりません。それらは機能のようですが、それらが何をするかについての実際の説明はありません。
2 に答える
この機能は、ファイル内の特定のトークンを、ユーザー、日付、リビジョン番号などのメタ情報に置き換える方法です。これらのキーワードは、シングルユーザーファイルベースのバージョン管理システムであるRCS(リビジョン管理システム)からのものであり、おそらく今日では誰も使用していません。
Subversion(svn)とConcurrent Versioning System(CVS)は、分散型(DVCS)ではなく、集中型のバージョン管理システムです。
CVSはRCSとほぼ同じキーワードをサポートし(CVSは元々RCSに基づいており、同じバックエンドファイル形式を使用しているため)、チェックイン時にファイルが特別にマークされていない場合は自動的に置き換えられます。
Subversion(自己宣言されたCVS-successor)には、置き換えることができる同様のキーワードのセットがありますが、置き換えるキーワードを指定するファイルプロパティを設定した場合にのみ、自動的に置き換えられません。(一部のキーワードの構文は、対応するCVSキーワードの構文とは少し異なります。)
有名な分散VCS -esはGit、Mercurial、Bazaarです-私はGitしか知りません、BazaarとMercurialに関する情報はグーグルで検索されます。一般に、これらは通常、バージョン識別子として現在のツリーのハッシュを使用するため、コミット時にこの識別子を挿入することはできませんが、チェックアウト時に挿入する場合は、そうするように構成されている場合に限ります。
- Gitのキーワード置換には制限があります(ファイルに適切な属性が指定されている場合は$ Id $ => $ Id:object-id $のみ)が、コミットとチェックアウト時に実行されるフィルタースクリプトのペアを記述してプラグインできます。その後、同様のことを行います。
- 同様に、Mercurialには組み込みの代替品はありませんが、拡張機能をサポートしており、これを行うと主張するものを見つけました。
- Bazaarには、そのようなことを行う実験的な状態のプラグインがあります。
リビジョン管理システムは、プロジェクトなどではなくファイルに基づくバージョン管理システムです。キーワードは、キーワードの内容を、たとえばソースコードのリビジョンなどのリビジョン管理システムの情報に置き換えるために使用されます。RCSのドキュメントをご覧ください。識別子についてはを参照してください(例はマニュアルからの抜粋です)。
$Id$
に置き換えられます:
$Id: filename revision number date time author state locker $
ここにCVSドキュメントがあります。