サブページ †初期作業 †環境変数 CVSROOT を設定する。 例) CVSROOT=/home/user/cvsroot CVS リポジトリを初期化する cvs init これだけ。 ディレクトリ追加時の注意 †あるサーバ上の作業ディレクトリでディレクトリを新しく作って、add と commit が終わったとする。 次に別のサーバで、cvs update としても先ほど追加されたディレクトリは登場しない。 これは、 cvs update -d とすることで解決できる。 これ面倒だよな… タグの削除 †間違ってタグを付けてしまったときは cvs tag -d <tag-name> とする。 ブランチ上で作業をしているときに間違ってタグを打ってしまったら、"-b"オプションをつけて、 cvs tag -b -d <tag-name> とする。 add時に発生するエラー †cvs add <filname> とすると、 cvs add: <filename> added independently by second party などとでて、addできなかったりすることがある。 他者が更新/追加してると言うことなので、いったんそのファイルを別の場所にでも待避させて、あらためて cvs updateして、現在の最新版をそこに生成させ、待避したファイルからこいつに上書きする。で、cvs commitすれば更新される。 ブランチ生成 †時々使う割にはすぐ忘れてしまうので、備忘録。
cvs tag BRANCH-POINT
cvs rtag -b -r BRANCH-POINT BRANCH-1 <modulename> これで、BRANCH-1 と言う系統が新しく生成される。枝分かれポイントから、BRANCH-1系統を派生させると言う指示。
cvs co -r BRANCH-1 <modulename> commit作業は、トランク(主系統)と同じ
トランクの作業ディレクトリにいる状態で、 cvs update -j BRANCH-1 とすると、主系にマージされる。
ブランチの作業ディレクトリにいる状態で、 cvs update -j BRANCH-1 -j HEAD HEADはトランクの最先端を指す。 マージ操作について上記二件は、最後にファイル名を指定すれば、そのようになる。 pserver(リモートCVSサーバ)からのチェックアウト手順 †
と言う手順になる。 ログイン †ここでは、curry上にあるリポジトリにログインする cvs -d :pserver:user@192.168.1.2:/home/user/cvsroot login パスワードを聞かれるので、UNIXユーザパスワードを入力。成功したらシェルのプロンプトに戻る チェックアウト †cvs -d :pserver:user@192.168.1.2:/home/user/cvsroot co -r REL-4 webapps などとする。
なお、パスワード情報は ~/.cvspassに保存される。 環境変数 CVSROOTにリポジトリの位置を指定しておけば、-d オプションは不要 cvs updateした場合のステータス文字について †cvs updateを実行したときに、各ファイルの先頭にある文字の意味です。 特に、Pが何のことだかわからなかったために書いた。
リモートのリポジトリにログインできない †pserverを用意しておいて、クライアント(FreeBSD)から接続。 cvs -d :pserver:kuma@192.168.0.10:/home/cvsroot login CVS password: /home/cvsroot: no such repository pserver側では、 mkdir /home/cvsroot chmod a+w /home/cvsroot cvs -d /home/cvsroot init として準備はできていると思うんだけど… また、/etc/inetd.confには次のように指定して、inetdは再起動済み。 cvspserver stream tcp nowait root /usr/bin/cvs cvs --allow-root=/home/cvsroot pserver ここの--allow-rootの指定ディレクトリが間違ってるとダメらしいけど、今回はあってる。 どうやら、パーミッションの問題だったようで、kumaのホームディレクトリ以下にcvsrootを作成して再度やってみたら解消した。 でも、/home/cvsrootにも書き込み権限はしっかりつけたんだけどなあ… |