The Postgres source code is stored and managed using the CVS code management system.
Postgres �Υ����������ɤϡ� CVS �����ɴ��������ƥ��ȤäƳ�Ǽ�� ��������Ƥ��ޤ���
At least two methods, anonymous CVS and CVSup, are available to pull the CVS code tree from the Postgres server to your local machine.
Postgres �Υ����Ф��餢�ʤ����ȤΥޥ� ��� CVS �����ɥĥ�����ĥ�äƤ��� �ˤϡ����ʤ��Ȥ� anonymous CVS �� CVSup �Ȥ������Ĥ���ˡ������ޤ���
Author: Written by Marc G. Fournier on 1998-11-05.
The command cvs checkout has a flag, -r, that lets you check out a certain revision of a module. This flag makes it easy to, for example, retrieve the sources that make up release 1.0 of the module `tc' at any time in the future:
cvs checkout �ˤϡ�����⥸�塼�������Υ�� �������ǡˤ�������å������Ȥ��뤿��� -r �� �����ե饰������ޤ�������ˤ�ꡢ����ˤ錄�äƤ��Ĥλ����ˤ��� �Ƥ⡢���Ȥ��аʲ��Τ褦�˥⥸�塼�� 'tc' �Υ��� 1.0 �Ȥʤ� ����������Ф����Ȥ��ä����Ȥ��Ǥ��ޤ���
$ cvs checkout -r REL6_4 tcThis is useful, for instance, if someone claims that there is a bug in that release, but you cannot find the bug in the current working copy. ����ˤ�ꡢ���Ȥ��С�ï���������Ǥ˥Х������뤳�Ȥ��Ŧ���Ƥ��� ���Τ���������ư���Ƥ���С������Υ��ԡ�����Ϥ��ΥХ��Ĥ� �뤳�Ȥ��Ǥ��ʤ����Ȥ��ä�������Ω���ޤ���
Tip: You can also check out a module as it was at any given date using the -D option.
�ޤ� -D ��Ȥ��ȡ�����⥸�塼���Ϳ����줿 ���դǥ����å������Ȥ������Τ褦�˸����뤳�Ȥ��Ǥ��ޤ���
When you tag more than one file with the same tag you can think about the tag as "a curve drawn through a matrix of filename vs. revision number". Say we have 5 files with the following revisions:
���İʾ�Υե������Ʊ��������Ĥ������Ǥ⡢���Υ�����֥ե��� ��̾���ǿ��ˤ��ޥȥ�å������̤��������줿�����֡פȸ��ʤ����� ���Ǥ��ޤ������Ȥ��С��ʲ��Τ褦��ʣ�����Ǥ���ģ��ĤΥե����뤬 ����Ȥ��ޤ���
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
then the tag "TAG" will reference
file1-1.2, file2-1.3, etc.
��ư�줬�ʤ�����
�����Ƥ��Υ��� "TAG" �� file1-1.2,
file2-1.3 ��ؤ��Ƥ���Ȥ��ޤ���
Note: For creating a release branch, other then a -b option added to the command, it's the same thing. ���ʤ�Ȥʤ���̣�����ʤΤǡ����ޤ����Ƥޤ���
�����Ѥλޤ���������ˤϡ����ޥ�ɤ� -b ���ץ������ɲä��� ���ޤ���
So, to create the v6.4 release I did the following:
�Ĥޤꡢv6.4 �Ǥ�������뤿��ˡ���ϰʲ��Τ褦�ˤ��ޤ�����
$ cd pgsql $ cvs tag -b REL6_4which will create the tag and the branch for the RELEASE tree. ����Ϥ��Υ����ȡ������ѤΥĥ�Τ���λޤ���ޤ���
Now, for those with CVS access, it's too simple. First, create two subdirectories, RELEASE and CURRENT, so that you don't mix up the two. Then do:
�����ޤǤ���С��ºݤ� CVS �ǥ������� ����Τ����˴�ñ�Ǥ����ޤ� RELEASE ��CURRENT �Ȥ������ĤΥ��� �ǥ��쥯�ȥ���äơ����Ĥ���������ʤ��褦�ˤ��ޤ���
cd RELEASE cvs checkout -P -r REL6_4 pgsql cd ../CURRENT cvs checkout -P pgsqlwhich results in two directory trees, RELEASE/pgsql and CURRENT/pgsql. From that point on, CVS will keep track of which repository branch is in which directory tree, and will allow independent updates of either tree. ���η�̤� RELEASE/pgsql �� CURRENT/pgsql �Ȥ������ĤΥǥ��쥯�ȥ�˽��Ϥ���ޤ��� ���λ������顢CVS �������Υǥ��쥯�� ����ˤ����ݥ��ȥ�λޤ�ƻ뤹��褦�ˤʤ�Τǡ������λޤϤ��� ������Ω���ƹ����Ǥ���褦�ˤʤ�ޤ���
If you are only working on the CURRENT source tree, you just do everything as before we started tagging release branches.
CURRENT �Υ������ĥ���������Ǻ�Ȥ��Ƥ���¤�ϡ������ѤλޤΥ�����Ĥ� �Ϥ������Ʊ�ͤ��ˡ����Ƥ�����פǤ���
After you've done the initial checkout on a branch
���λޤǡ��ǽ�Υ����å�������
$ cvs checkout -r REL6_4anything you do within that directory structure is restricted to that branch. If you apply a patch to that directory structure and do a ��Ѥޤ�����ϡ����Υǥ��쥯�ȥ깽¤�������ǹԤä����ȤϤ��٤Ƥ� �λޤ����������˱ƶ�����褦�����¤���ޤ������Υǥ��쥯�ȥ깽¤ �إѥå���Ŭ�Ѥ����������
cvs commitwhile inside of it, the patch is applied to the branch and only the branch. ����С����λ� ���� �˥ѥå���Ŭ�Ѥ���ޤ���