cvs import -m 'comment' module-path vendor_tag release_tagなどについて。
mkdir /home/cvs-root setenv CVSROOT /home/cvs-root cvs initここでいきなり cvs add とやっても、次のようになってしまう。
ttyp5:makoto@u 10:04:05/020805(~/)> cvs add test-module cvs add: in directory .: cvs [add aborted]: there is no version here; do 'cvs checkout' first ttyp5:makoto@u 10:04:38/020805(~/)>なので、普通は、最初に import を行なっておく。 しかし例えば CVS/Root, CVS/Repository CVS/Entries $CVSROOT/module-name を手動で作れば、 cvs import 無で始めること も可能ではある。その時は次のようにする。
名前 | 内容例等 | 説明 |
---|---|---|
CVS/Root | /home/cvs-root | $CVSROOT |
CVS/Repository | my_name | $CVSROOT の下の名前 |
CVS/Entries | D/sample//// | mkdir sample して見る |
$CVSROOT/module-name | mkdir $CVSROOT/my_name | 保管庫の方も作っておく |
cvs import の書式は次の通り。
cvs import -m 'comment' module-path vendor_tag release_tag-m で説明を加える。module-path が保管庫(またはその中の path) の指定になる。
上で 二つ tag という字が出て来るが、この二つは大きく違う。
import が終ったら、そこに置いてあったものは不要になる。後の作業は、 別に目録 (directory) を作って、そこに checkout して行う。
RCSLOG RCS SCCS CVS* cvslog.* tags TAGS .make.state .nse_depinfo *~ #* .#* ,* *.old *.bak *.orig *.rej .del-* *.a *.o *.Z *.elc *.ln corelinux の kernel を、何も考えないで import すると net/core を無視してしまう。 -I\!\* のようにしておけば、それを避けられる。一例:
cvs -d /export/cvsroot import -I'!' -m 'initial import' linux FSF v2_4_17 2> ../err 1> ../log & tail -f log | grep ^Iこの grep の操作の結果として、表示に (本当は必要なものなのに) 先頭に I の字が出ていたら失敗
-I'*.ncb' -I'*.sln' -I'*.suo'のようにすれば、その三つの接尾辞が付いているものは無視される。実際には次のようにする。
cvs -d /export/fr import -I'*.ncb' -I'*.sln' -I'*.suo' -m 'message' module_hoge VENDOR tagこれは例えば、それらは後から -kb を付けて二進形式 (binary mode) で追加する、など という方法の時に良く使う。
実際に import する前に、ちょっと回り道。
↑ 枝 分 れ ↓ |
→ → (葉の番号)
(枝 1.2.2) +--1.2.2.1 --- 1.2 を基に自分で tag, rtag を使って作った枝 / / (枝 1) 1.1 === 1.2 === 1.3 === 1.4 幹 trunk 1 という(特別な)枝に .1 .2 .3 .4 という葉が付いている \ \ (枝 1.1.1) +--- 1.1.1.1 --- 1.1.1.2 vendor branch 1.1.1 という (1.1 を基にして作った) | 枝に .1 .2 .3 .4 という葉が付いている | (枝 1.1.3) +--- 1.1.3.1 --- 1.1.3.2 vender branch(その二) 1.1.3 という (1.1 を基にして作ったもう一つの別な) 枝に ...(以下同じ) |
幹 | 枝 1 というのが、別名 幹(trunk) という特別な枝。しかし性質としては枝。 | |||
枝 |
枝の番号はいつも奇数桁。奇数桁とは、1.1.1 のように数字が三つ並んでいること。
最後の桁が本来の枝番。 1.1.3 なら 3 が枝の番号ということになる。
残る前の方、先の例では 1.1 は基になった葉の番号。その葉から分れて出来た 枝という意味になる。 | 枝番 | 偶数 | tag,rtag で作る |
奇数 | import で作る | |||
葉 | 枝に一つ数字を作けて葉になる(つまり偶数桁)。 改訂(Revision) という言葉が使われるが、「葉」の方が分り易いと思う。 |
多分これは歴史的な理由か何かだと思うけれど、 最初の import は必ず 1.1.1 に行なわれて、それが 1.1 と意味的には同じ だからだと思う。
つまり、
cvs update -j 枝の名前 cvs update -j 枝の名前 filename(ここの例で言えば「枝の名前」は vendor_tag になる)
等とすると、「枝の名前」に行なわれた修正が、自分の作業域の方に反映される。 一つ目の方法は、「全ての変更を」になるし、 二つ目の方法は「filename に行なわれた変更を」になる。
実際には、その後に commit をすると、初めて幹が変更される。
cvs import -ko ....のように -ko を付けておくと元々付いている $header$ などを変更せずに、そのままにしてくれる。 自分で作っている時や、何か project に参加している時には不要だが、 勝手に追いかけをやるとか、 日本語 patch を作って配ろうという時などには、 -ko を付けて、元の RCS tag を保存する(のが普通だと思う)
Last Update
19:53:07 03/12/08 Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com) Apache/2.4.62 (Unix) OpenSSL/3.0.12 (since 2002/02/03)