綾小路龍之介の素人思考

[cvs] ブランチで作業して

checkout して、ブランチ作って、ブランチ以下で作業して、trank にマージするまで。tagやbranchはリポジトリへの書き込み権限が必要になる。

目標のリポジトリを checkoutする。

$ mkdir -p ~/path/to/cvs-pool-dir;
$ cd ~/path/to/cvs-pool-dir;
$ cvs -d :ext:********************************@cvs.debian.org:/cvs/webwml checkout webwml;

すでに checkout 済みならば、cvsroot に移動して update する。

$ cvs -q update -d;

タグをつける。cvsroot 以下の全ての cvs 管理ファイルにタグがつけられる。cvs status で管理ファイルにつけられたタグの確認ができる。

$ cvs tag tag_test_YYYYMMDD
$ cvs status -v

ブランチとしてのタグをつける。各ファイルにつけられたタグを見るには status -v を使う。

$ cvs tag -r tag_test_YYYYMMDD -b tag_test_YYYYMMDD_branch
$ cvs status -v english/index.wml
===================================================================
File: index.wml         Status: Up-to-date

   Working revision:    1.92
   Repository revision: 1.92    /cvs/webwml/webwml/english/index.wml,v
   Commit Identifier:   1005360BF17193854B5
   Sticky Tag:          (none)
   Sticky Date:         (none)
   Sticky Options:      (none)

   Existing Tags:
        tag_test_YYYYMMDD_branch        (branch: 1.92.2)
        tag_test_YYYYMMDD               (revision: 1.92)
        start                           (revision: 1.1.1.1)
        webwml                          (branch: 1.1.1)

ここで、tag_test_YYYYMMDD_branch を取り出す。

$ cvs update -r tag_test_YYYYMMDD_branch

いろいろ編集。

$ vi english/index.wml

編集内容を reset (元に戻) したければ update -C。正常に戻せたか確認するには -q diff

$ cvs update -C
$ cvs -q diff

cvs において commit はリモートへの書き込みになるので、ちょっと慎重になる。commit 前に commit されるものを確認したい場合は -n commit を使う。

$ cvs -n commit -m '';
$ cvs -n tag -d tag_test_YYYYMMDD english/index.wml
Enter passphrase for key '****************************************':
D english/index.wml
$ cvs -n tag -B -d tag_test_YYYYMMDD_branch english/index.wml
Enter passphrase for key '****************************************':
D english/index.wml
$ cvs status -v english/index.wml
Enter passphrase for key '****************************************':
===================================================================
File: index.wml         Status: Up-to-date

   Working revision:    1.92
   Repository revision: 1.92    /cvs/webwml/webwml/english/index.wml,v
   Commit Identifier:   1005360BF17193854B5
   Sticky Tag:          (none)
   Sticky Date:         (none)
   Sticky Options:      (none)

   Existing Tags:
        tag_test_YYYYMMDD_branch        (branch: 1.92.2)
        tag_test_YYYYMMDD               (revision: 1.92)
        start                           (revision: 1.1.1.1)
        webwml                          (branch: 1.1.1)

$ cvs tag -d tag_test_YYYYMMDD english/index.wml
Enter passphrase for key '****************************************':
D english/index.wml
$ cvs tag -B -d tag_test_YYYYMMDD_branch english/index.wml
Enter passphrase for key '****************************************':
D english/index.wml
$ cvs status -v english/index.wml
Enter passphrase for key '****************************************':
===================================================================
File: index.wml         Status: Up-to-date

   Working revision:    1.92
   Repository revision: 1.92    /cvs/webwml/webwml/english/index.wml,v
   Commit Identifier:   1005360BF17193854B5
   Sticky Tag:          (none)
   Sticky Date:         (none)
   Sticky Options:      (none)

   Existing Tags:
        start                           (revision: 1.1.1.1)
        webwml                          (branch: 1.1.1)

ソーシャルブックマーク

  1. はてなブックマーク
  2. Google Bookmarks
  3. del.icio.us

ChangeLog

  1. Posted: 2008-03-22T00:46:22+09:00
  2. Modified: 2008-03-22T00:46:22+09:00
  3. Generated: 2017-11-13T23:09:20+09:00