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'
|