mots quotidiens.
Daichi Mochihashi (持橋大地) daichi <at> ism.ac.jp by hns, version 2.10-pl1.

先月 2004年09月 来月
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30

2004年09月06日(月) [n年日記]

#1 cvs import

普通に cvs import すると, デフォルトではイニシャルブランチ 1.1.1.1 ができて しまうので,
  1. /tmp に空ディレクトリを作り, 一旦そこに cd して空のモジュールを作る
  2. そこ(あるいは別の場所)で cvs checkout module し, module/CVS を元の作業 ディレクトリに mv する
  3. 空ディレクトリを消す
  4. 元の作業ディレクトリで, cvs add *; cvs commit * する
という手順を(手で)順番にやっていた。こうすると普通にリビジョンが 1.1 から 始まるし, 必要なファイルだけ add できるのでムダがない。(聞いたところ, こうして 1.1.1.1 を避けるのはそんなにレアというわけではないらしい)

毎回これを手でやるのは面倒なので, スクリプトを書いてみた。以下のような感じ。

#!/bin/sh -
#
#  cvsinit -- cvs initial importer.
#
# $Header: /home/dmochiha/cvsroot/scripts/cvsinit,v 1.2 2004/09/06 06:17:54 dmochiha Exp $
if [ $# -lt 1 ]; then
        echo "usage: cvsinit module [initial message]"
        exit 0
fi
CVSMOD=$1
CVSMSG=${2:-"cvs start"}
CVSSTART=start
OLDPWD=`pwd`
trap 'rm -rf /tmp/.cvsinit-$$; exit 1' 2 3 9 15
(mkdir /tmp/.cvsinit-$$; \
 cd    /tmp/.cvsinit-$$; \
 cvs import -m "$CVSMSG" $CVSMOD `whoami` $CVSSTART; \
 cvs checkout $CVSMOD;   \
 mv $CVSMOD/CVS $OLDPWD  \
)
rm -rf /tmp/.cvsinit-$$
"cvs start" とかベンダが `whoami` なのは自由なので, 適当に書き換えて下さい。
今いるディレクトリで cvsinit foo とやると, 空のモジュール foo ができて 今のディレクトリが CVS の管理下に入るので、そこで必要なファイルを適当に cvs add; cvs commit すればよい。(実際には僕は cvsadd () { cvs add $*; cvs commit $* } という関数を ~/.zshrc で定義しています。)
イニシャルブランチを使うのが気にならない人は別にいいのだけど, 1.1.1.1 が気に なる人や, *.c や *.m など必要なファイルだけ管理したい人にはおすすめだと思う。
(Thanks for the help of F澤さん。)

#2 -

先週は1週間ずーっと手計算していたので, メモがすごいことになっている。; 整理 しないと。


1 days displayed.
タイトル一覧
カテゴリ分類
 なかのひと
Powered by hns-2.10-pl1, HyperNikkiSystem Project