移动和重命名文件

移动文件到另一个目录或者重命名并不困难,但是其中一些方法的工作方式并不是太明了。(移动和重命名目录更困难一些,[移动和重命名目录])。

下面的例子假设文件old被重命名为new

重命名的常规方法

移动一个文件的常规方法是把文件从old拷贝到new,然后使用CVS命令从源码库里删除old文件,并且把new文件添加进去。

$ mv old new
$ cvs remove old
$ cvs add new
$ cvs commit -m "Renamed old to new" old new

这是移动文件最简单的方法,而且不会出错,它还可以清楚地留下操作的记录。用户必须指定文件新的或者老的名称来访问纪录,这取决于用户想要访问哪一部分。例如,cvs log old命令将给出文件被重命名前的所有记录。

当文件以新new名称被提交以后,它的版本号将从1.1 开始重新分配。用户如果觉得这一点不便的话,可以在提交命令中使用-r rev选项。请参阅[分配版本号 在 第 4 章]一节获得更多细节。

移动历史文件

当你移动的文件包含在源码库里时,这种做法是十分危险的。在动手之前,请完整地阅读这一节内容。

$ cd $CVSROOT/dir
$ mv old,v new,v

优点:

缺点:

拷贝历史文件

这里同样包含了对源码库的直接修改,这样做是安全的,但并非没有坏处。

#  在源码库内部复制 RCS 文件
$ cd $CVSROOT/dir
$ cp old,v new,v
#  删除旧文件
$ cd ~/dir
$ rm old
$ cvs remove old
$ cvs commit old
# Remove all tags from new
$ cvs update new
$ cvs log new             # Remember the non-branch tag names
$ cvs tag -d tag1 new
$ cvs tag -d tag2 new

去掉标签,你就能检出以前对该模块所作的修改。

优点:

缺点: