CVS の使い方
 使い方(場合分け)
 保管庫
  保管庫の指定方法
 改訂番号
  枝と葉
 import
 二回目

 枝の番号は奇数桁
 枝を作る三方法
 枝の確認方法
 実際例 (1) tag
 実際例 (2) rtag
 実際例 (3) import
 枝での変更を取込
 tag を消す
 枝の使い方
  過去形
  未来形
操作
 変更を元に戻す
 追っかけ
  -ko のこと
  import
  cvs co
  枝
  枝の持出
  枝を変更
  cvs add
  commit
  tag
  統合
CVSROOT
 history
  history の読み方
   一文字目
    時刻情報
Errors
 had a conflict and
 waiting for lock
関連道具
 cvstree
URL

software

CVS @ki.nu

Last Update: "2006/10/19 01:38:01 makoto"

追っかけ

例えば、NetBSD の -current にまだ取込まれていない作業をしている 人がいて、自分は更にそれに対して少し変更を行なったりするとします。 「他で作業している人」は特にこの保管庫に書くということを考えないとします。 つまり自作自演のようなものです (だから「追っかけ」です)。
1.1 --- 1.2    (自分用)
  \ 
   + 1.1.1     (NetBSD -current by TNF, import)
   |
   + 1.1.2     (他で作業している人、ただし作業は自分で取込む)

-ko のこと

-ko を使って、$Header: /e/u/j/local-repository/htdocs/www/software/.cvs2/50000.tracking.html.ja,v 1.1.1.1 2008/03/12 10:53:46 makoto Exp $ 番号等の置換をしない場合と、 -ko を使わないで、番号を自分で管理する場合の二つの方法がありますが、 ここでは -ko を使う方で試します。 -ko を付けると、cvs の外との diff が取りやすいです。 -ko 無だと、改訂番号が自分で付けたものになるので、版の管理が多分、分りやすいです。 k は keyword substition, o は off です。-ko で番号置換無という意味です。

import

import は例えば、次のような書式になります。
    cvs -d ${CVSROOT} import -ko -m 'TNF import'  -I \! -I CVS   \
    src TNF d_${DATE}  >& ../log-import
  • ディレクトリを作る
  • 初期化する
  • 本家の保管庫(の写し)から持出す
  • import する
  • 記録を確認
   128  21:37   mkdir /export/cvs-netbsd
   129  21:37   cvs -d /export/cvs-netbsd init
   133  21:37   mkdir 20061017
   134  21:37   cd 20061017
   135  21:37   cvs -d /e/s900/cvsync co -d . src
   144  22:37   cvs -d /export/cvs-netbsd import -ko -m 'TNF import'  \
                -I \! -I CVS src TNF d_20061017 > & ../log-import
   145  22:54   grep ^C ../log-import
ここで import に使ったものは必要ないので、消します。あるいは、別の目的に使うなら、 これは放っておいて、どこかに移動して作業を続けます。

cvs co

作業場所を作って、そこに持出します。
   mkdir evbppc-work
   cd    evbppc-work
   cvs -d /export/cvs-netbsd co src >& log-co

枝を名前を指定して作ります。
  cvs   tag -b KAWAUCHI

枝の持出

作ったばかりの枝の名前を指定して更新します。
ttypd:makoto@mini 0:15:30/061018(...evbppc-work/src)> cvs update -r KAWAUCHI

枝を変更

ttypd:makoto@mini 8:44:35/061018(...evbppc-work/src)> \
zcat $DISTFILES/20061012.current-evbppc.diff.bz2 | patch -s -p0
状況を確認(必須ではありません):
ttypd:makoto@mini 8:45:10/061018(...evbppc-work/src)> cvs status -v Makefile
===================================================================
File: Makefile          Status: Up-to-date

   Working revision:    1.1.1.1 Tue Oct 17 13:37:39 2006
   Repository revision: 1.1.1.1 /export/cvs-netbsd/src/Makefile,v
   Sticky Tag:          KAWAUCHI (branch: 1.1.1.1.2)
   Sticky Date:         (none)
   Sticky Options:      -ko

   Existing Tags:
        KAWAUCHI                        (branch: 1.1.1.1.2)
        d_20061017                      (revision: 1.1.1.1)
        TNF                             (branch: 1.1.1)

cvs add

追加されたものを確認します。これらを後で cvs add します
ttyrd:makoto@mini 9:21:53/061018(...evbppc-work/src)> cvs -n update |&  grep ^\?
? sys/arch/evbppc/kurobox
? sys/arch/evbppc/sandpoint
? sys/arch/evbppc/conf/KUROBOX
? sys/arch/evbppc/conf/Makefile.kurobox.inc
? sys/arch/evbppc/conf/Makefile.sandpoint.inc
? sys/arch/evbppc/conf/SANDPOINT
? sys/arch/evbppc/conf/SANDPOINT.X2
? sys/arch/evbppc/conf/SANDPOINT.generic
? sys/arch/evbppc/conf/files.kurobox
? sys/arch/evbppc/conf/files.sandpoint
? sys/arch/evbppc/conf/std.kurobox
? sys/arch/evbppc/conf/std.sandpoint
? sys/arch/evbppc/include/bootinfo.h
? sys/arch/evbppc/include/darwin_machdep.h
? sys/arch/evbppc/include/isa_machdep.h
? sys/arch/evbppc/include/isapnp_machdep.h
? sys/arch/evbppc/include/kgdb.h
? sys/arch/evbppc/include/kurobox.h
? sys/arch/evbppc/include/openpicreg.h
? sys/arch/evbppc/include/sandpoint.h
ttyrd:makoto@mini 9:36:23/061018(...evbppc-work/src)> 
枝で directory を cvs add すると 次のように言われます。
ttyrd:makoto@mini 9:36:23/061018(...evbppc-work/src)> cvs add  sys/arch/evbppc/kurobox
Directory /export/cvs-netbsd/src/sys/arch/evbppc/kurobox added to the repository
--> Using per-directory sticky tag `KAWAUCHI'
上の一覧の表示から awk を使って cvs add の操作を作り sh に読ませます。
ttyrd:makoto@mini 11:02:56/061018(...evbppc-work/src)> cvs -n update |& \
grep ^\? | cut -d ' ' -f 2 | awk '{print "cvs add",$1}' |sh

commit

ttypd:makoto@mini 8:45:17/061018(...evbppc-work/src)> \
cvs commit -m 'with patch 20061012.current-evbppc.diff.bz2 applied' 

tag

この変更に名前を付けておきます。
 cvs tag k_20061012

統合

自分の枝(= 幹)を持出します。あるいは update -A をして幹にします。
ttyrd:makoto@mini 11:42:28/061018(...evbppc-work/src)> cvs update -A
現在振られている名札を確認します。
ttyrd:makoto@mini 11:43:34/061018(...evbppc-work/src)> cvs status -v Makefile
===================================================================
File: Makefile          Status: Up-to-date

   Working revision:    1.1.1.1 Tue Oct 17 13:37:39 2006
   Repository revision: 1.1.1.1 /export/cvs-netbsd/src/Makefile,v
   Sticky Tag:          (none)
   Sticky Date:         (none)
   Sticky Options:      -ko

   Existing Tags:
        k_20061012                      (revision: 1.1.1.1)
        KAWAUCHI                        (branch: 1.1.1.1.2)
        d_20061017                      (revision: 1.1.1.1)
        TNF                             (branch: 1.1.1)
ここに枝の変更を統合します。
ttyrd:makoto@mini 11:46:27/061018(...evbppc-work/src)> \
cvs update -dP -j d_20061017 -j KAWAUCHI
その変更を幹に commit します
 cvs commit -m 'sync with KAWAUCHI branch' 
以前の cvs 情報
Last Update: Sat, 07 Jun 2014 22:16:17 GMT 1.66 2008/03/08