
このファイル名の名前を変更したい。こういう状況も良くあります。 しかし、名前の変更は一筋縄ではいきません。これは注意が必要です。
一般には以下の2つの方法が利用されているようです。
remove してから add する。
リポジトリの情報を直接書き換える。
最初の方法は、もう1つの方法から見れば正攻法と言えるでしょう。 remove、add 後の commit の時に名前変更のためという主旨のコメントを 残しておくのが良い方法です。
shimaki:~/tmp/hello $ ls CVS/ docs/ hello.c readme shimaki:~/tmp/hello $ mv hello.c myhello.c shimaki:~/tmp/hello $ cvs remove hello.c cvs remove: scheduling `hello.c' for removal cvs remove: use 'cvs commit' to remove this file permanently shimaki:~/tmp/hello $ cvs add myhello.c cvs add: scheduling file `myhello.c' for addition cvs add: use 'cvs commit' to add this file permanently shimaki:~/tmp/hello $ cvs commit cvs commit: Examining . cvs commit: Examining docs Removing hello.c; /home/shimaki/cvs/cvsroot/hello/hello.c,v <-- hello.c new revision: delete; previous revision: 2.0 done RCS file: /home/shimaki/cvs/cvsroot/hello/myhello.c,v done Checking in myhello.c; /home/shimaki/cvs/cvsroot/hello/myhello.c,v <-- myhello.c initial revision: 2.1 done shimaki:~/tmp/hello $ cvs log myhello.c RCS file: /home/shimaki/cvs/cvsroot/hello/myhello.c,v Working file: myhello.c head: 2.1 branch: locks: strict access list: symbolic names: keyword substitution: kv total revisions: 1; selected revisions: 1 description: ---------------------------- revision 2.1 date: 1999/08/25 10:44:16; author: shimaki; state: Exp; 名前変更 hello.c -> myhello.c ============================================================================= shimaki:~/tmp/hello $ |
もう一方のリポジトリを直接書き換えるという方法は少々強引ですが、 ログなどもそのまま引き継がれ、まるで始めからその名前で あったかようように cvs 内で管理されます。 「綺麗好き」な方には好かれる方法です。 方法は簡単で、,v ファイルの名前を変更してあげるだけです。
shimaki:~/tmp/hello $ cd $CVSROOT shimaki:~/cvs/cvsroot $ cd hello shimaki:~/cvs/cvsroot/hello $ ls Attic/ docs/ hello.c,v readme,v shimaki:~/cvs/cvsroot/hello $ mv hello.c,v myhello.c,v shimaki:~/cvs/cvsroot/hello $ ls Attic/ docs/ myhello.c,v readme,v shimaki:~/cvs/cvsroot/hello $ |
これだけです。
shimaki:~/tmp $ cvs checkout hello cvs checkout: Updating hello U hello/myhello.c U hello/readme cvs checkout: Updating hello/docs U hello/docs/gpl.texinfo U hello/docs/hello.texi shimaki:~/tmp $ |
御覧の通り myhello.c で checkout されています。