10.7.7. CVS 工作流
这里有一个 CVS 典型工作流的例子。
按如下所示查看 “$CVSROOT
“ 所指的 CVS 项目上所有可用的模块。
$ cvs rls
CVSROOT
module1
module2
...
按如下所示签出 “module1
“ 到默认的目录 “./module1
“。
$ cd ~/path/to
$ cvs co module1
$ cd module1
按需修改里面的内容。
通过如下所示的命令来检查改变,其作用相当于使用 “diff -u [repository] [local]
“。
$ cvs diff -u
你发现自己改坏了 “file_to_undo
“ 文件,而其他的文件都是好的。
按如下所示用 CVS 中的原始副本覆盖 “file_to_undo
“ 文件。
$ cvs up -C file_to_undo
按如下所示把更新了的本地源目录树保存到 CVS。
$ cvs ci -m "Describe change"
按如下创建并添加 “file_to_add
“ 文件到 CVS。
$ vi file_to_add
$ cvs add file_to_add
$ cvs ci -m "Added file_to_add"
按如下所示合并 CVS 中的最新版本。
$ cvs up -d
当心以 “C filename
“ 开头的行,这意味着冲突的改变。
查看 “.#filename.version
“ 中未经修改的代码。
查找文件中的 “<<<<<<<
“ 和 “>>>>>>>
“ 来获得冲突的改变的信息。
按需更改文件来解决冲突。
按如下所示添加一个发布标签 “Release-1
“。
$ cvs ci -m "last commit for Release-1"
$ cvs tag Release-1
继续编辑文件。
按如下所示移除发布分支 “Release-1
“。
$ cvs tag -d Release-1
按如下所示把改变签入到 CVS。
$ cvs ci -m "real last commit for Release-1"
按如下所示给已经更新了的 CVS 主干中的 HEAD 重新添加 “Release-1
“ 发布标签。
$ cvs tag Release-1
按如下所示从 “Release-initial
“ 标签指向的初始版本中创建一个带有粘性标签的 “Release-initial-bugfixes
“ 分支,并把它签出到 “~/path/to/old
“ 目录。
$ cvs rtag -b -r Release-initial Release-initial-bugfixes module1
$ cd ~/path/to
$ cvs co -r Release-initial-bugfixes -d old module1
$ cd old
提示 | |
---|---|
使用 “ |
在基于原始版本的有 “Release-initial-bugfixes
“ 粘性标签的本地源目录树上工作。
独自在 “Release-initial-bugfixes
“ 分支上工作…直到有其他人加入到此分支。
当要创建新的目录时,按如下所示同步其他人在此分支上对文件所做的修改。
$ cvs up -d
按需更改文件来解决冲突。
按如下所示把改变签入到 CVS。
$ cvs ci -m "checked into this branch"
按如下所示更新本地目录树为主干的最新版本,同时移除粘性标签 (“-A
“) 并且不使用关键字扩展 (“-kk
“)。
$ cvs up -d -kk -A
按如下所示通过合并 “Release-initial-bugfixes
“ 分支并且不使用关键字扩展的方式来更新本地目录树 (内容为主干中的最新版本)。
$ cvs up -d -kk -j Release-initial-bugfixes
用编辑器来解决冲突。
按如下所示把改变签入到 CVS。
$ cvs ci -m "merged Release-initial-bugfixes"
按如下所示创建归档。
$ cd ..
$ mv old old-module1-bugfixes
$ tar -cvzf old-module1-bugfixes.tar.gz old-module1-bugfixes
$ rm -rf old-module1-bugfixes
提示 | |
---|---|
“ |
提示 | |
---|---|
你可以通过形如 “ |
表 10.14. 值得注意的 CVS 命令选项 (用作 cvs(1) 的第一个选项)
选项 | 说明 |
---|---|
-n | 测试,没有影响 |
-t | 显示 cvs 活动步骤的信息 |