Postgres のソースコードは、 CVS コード管理システムを使って格納・ 管理されています。
Postgres のサーバからあなた自身のマシ ンに CVS コードツリーを引っ張ってくる には、少なくとも anonymous CVS と CVSup という2つの方法があります。
Author: Written by Marc G. Fournier on 1998-11-05.
cvs checkout には、あるモジュールの特定のリビ ジョン(版)からチェックアウトするための -r と いうフラグがあります。これにより、将来にわたっていつの時点におい ても、たとえば以下のようにモジュール 'tc' のリリース 1.0 となる ソースを取り出す、といったことができます。
$ cvs checkout -r REL6_4 tcこれにより、たとえば、誰かがその版にバグがあることを指摘してくれ たのだが、現在動いているバージョンのコピーからはそのバグを見つけ ることができない、といった場合に役立ちます。
Tip: また -D を使うと、あるモジュールを、与えられた 日付でチェックアウトしたかのように見せることができます。
1つ以上のファイルに同じタグをつけた場合でも、そのタグを「ファイ ル名と版数によるマトリックスを通して描かれたカーブ」と見なすこと ができます。たとえば、以下のような複数の版を持つ5つのファイルが あるとします:
file1 file2 file3 file4 file5 1.1 1.1 1.1 1.1 /--1.1* <-*- TAG 1.2*- 1.2 1.2 -1.2*- 1.3 \- 1.3*- 1.3 / 1.3 1.4 \ 1.4 / 1.4 \-1.5*- 1.5 1.6そしてそのタグ "TAG" は file1-1.2, file2-1.3 を指しているとします。
Note: リリース用の枝を生成するには、コマンドに -b オプションを追加して やります。
つまり、v6.4 版を作成するために、私は以下のようにしました:
$ cd pgsql $ cvs tag -b REL6_4これはそのタグと、リリース用のツリーのための枝を作ります。
ここまでくれば、実際に CVS でアクセス するのは非常に簡単です。まず RELEASE とCURRENT という2つのサブ ディレクトリを作って、2つが混ざり合わないようにします。
cd RELEASE cvs checkout -P -r REL6_4 pgsql cd ../CURRENT cvs checkout -P pgsqlこの結果は RELEASE/pgsql と CURRENT/pgsql という2つのディレクトリに出力されます。 この時点から、CVS は双方のディレクト リ中にあるリポジトリの枝を監視するようになるので、双方の枝はお互 いに独立して更新できるようになります。
CURRENT のソースツリーの方だけで作業している限りは、リリース用の枝のタグをつけ 始める前と同様うに、何をしても大丈夫です。
その枝で、最初のチェックアウト
$ cvs checkout -r REL6_4を済ませた後は、そのディレクトリ構造の内部で行ったことはすべてそ の枝の内部だけに影響するように制限されます。そのディレクトリ構造 へパッチを適用し、その中で
cvs commitすれば、その枝 だけ にパッチが適用されます。