CVS_TIPS 4.06 KB


----
○メインブランチに新しく add したファイルを、ブランチにも組み入れる

ブランチにおいて下記を実行

$ mv CVS/Tag CVS/Tag.bak
$ cvs up viextendvstart.c
$ cvs tag -b latest_OS_V2_0I viextendvstart.c
$ mv CVS/Tag.bak CVS/Tag
$ cvs up -r latest_OS_V2_0I viextendvstart.c


----
○ファイルのリネーム、移動

$ rlogin -l root liberte

# cd /disk6/Master/cvsmdev2/PR
# cp libultra/io/leointerrupt.c,v libleo/api/
# logout

$ cd $ROOT/PR/libultra/io/
$ rm leointerrupt.c
$ cvs rm leointerrupt.c
$ cvs commit

$ cd $ROOT/PR/libleo/api/
$ cvs up leointerrupt.c
$ cvs status -v leointerrupt.c (タグを見る)
$ cvs tag -d patchNg980423 leointerrupt.c (今までのタグを消す)
$ cvs tag -d patchNg980305 leointerrupt.c
$ cvs tag -d latest_OS_V2_0I leointerrupt.c
$ cvs tag -d OS_V2_0I leointerrupt.c
$ cvs tag -d OS_V2_0H leointerrupt.c
$ cvs commit -f leointerrupt.c (移動させたことをログに残す)

---
○ファイルの比較

$ cvs diff [-r[revision]] [filename]

  (-r が指定されていなければ)ローカルとマスターの指定ファイルに対し
  diff を実行します。-r オプションで比較対象のリビジョン番号を指定できます。
  ファイルを指定しなければカレント以下の(マスター側にある)
  全てのファイルが対象になります。 

---
○ 変更履歴

$ cvs log [filename]

  (マスターにある)指定ファイルのリビジョン履歴を表示します
  ファイルを指定しなければカレント以下の(マスターにある)
  全てのファイルが対象になります。 

---
○ ローカルツリーの更新

$ cvs up(date) [filename]

  指定ファイルの status が Needs patch の時に限り
  ローカルにある指定ファイルがマスターのもので上書きされます。
  指定ファイルの status は Up-to-date に変わります。

---
○ ロックの解除法

  cvs コマンドを Ctr-c したりすると、たまにそのディレクトリで以後の cvs 
  コマンド実行が拒否されてしまうロックアウト状態になることがあります。
  この場合はルートでマスターツリーに入り、ロックファイルを削除する必要が
  あります。ロックファイルの削除には細心の注意を払ってください。

 # cd /disk6/Master/cvsmdev2/PR/**/
 # rm #cvs.lock
 # exit 
 
--- 
○ ローカルファイル情報の取得

$ cvs status [filename]

  指定ローカルファイルのステータス、リビジョン番号、その他の情報を
  取得します。ファイルを指定しなければカレント以下の(マスターにある)
  全てのファイルが対象になります。
  Status には以下の4種類があります。
 
  Up-to-date 	   	最新です。 
  Needs patch     	マスターが更新されています。
  Localy modified 	ローカルが変更されています。
  needs merge 		上の2つが重なった状態です。
			update も commit も行えません

  通常は grep と組み合わせて使うことが多いでしょう。

  ex. $cvs status |grep Status: |grep Locally  

---
○ マスターの更新

$ cvs commit [filename]

  指定ローカルファイルをマスターの新しいリビジョンとして登録します。
  commit を行えるのは status が Locally modified のファイルのみです。
  ファイルを指定しなければカレント以下の(マスターにある)
  全ての Locally modified ステータスのファイルが対象になります。
  ただし、それ以外の対象ファイルが全て Up-to-date である必要があります。
  実行後エディタが起動しますので、更新内容の簡単な説明を入れてください。

  commit 実行後は n64-stree@ メンバに 必ずメイルで報せて下さい。 
  メイルのサブジェクトは[S-Tree]で始めてください。

---
○ ブランチの出し方

$ make clobber 
$ cvs up -r [tag]

  tag によって指定されるブランチリビジョンを出現させます。
  tag 名は cvs status の Sticky Tag: に表示されるものです。
  	
  そのディレクトリに存在するブランチを知りたいときは

  $ cvs status -v [filename(anything ok)] | grep branch
  
  を実行してください。

  ブランチから抜け最新のリビジョンに戻したい場合は

  $ cvs up -A 
  
  を実行します。

---
○ commit したバージョン(リビジョン)をダウンさせる

$ cvs up -p -r [revison] [file] > [file]
$ cvs commit [file]

   commit のアンドゥーは不可能なため、
   以前のリビジョンを取り出して上書きすることになります。
   ブランチ上でこれを行いたいときは
   
   $ cvs up -r [tag] 
 
   を事前に実行しておきます。

---
○ あるタグの時点から、どのファイルを変更したかを調べたい。

$ cvs diff -r TREESYNC00 | & egrep '(cvs diff:|RCS file:)'

   変更したファイルは、RCS file: で始まる行で報告されます。
   タグの時点で存在しなかったファイルは

	cvs diff: tag TREESYNC00 is not in file xxx

   と表示されるので分かります。