CVSNT Usage
环境说明
- Windows 2000/XP
- CVS NT
- WinCvs
- Python
cvsnt安装和配置
- 在服务器端用管理员账号安装cvsnt: 安装后, 会自动启动两个服务: cvsservice和cvslock
- 启动"Service Control Panel"来配置cvsnt:
- 停止CVSNT的两个服务,以便修改
- "Repositories" tab: add repository
- "Advanced" tab: clear check boxes but "Impersonation enabled"; enter hostname; change "Temporary Directory" if necesary
- 启动CVSNT的两个服务
用户添加
需要在Win2000中先配置用户,归入guest组;
在命令行窗口中,先
set cvsroot=:ntserver:<主机IP>:
为每个用户设置密码,密码可以和Windows用户的密码不同.
administrator可以使用Windows中密码, 不用特别添加.
cvs passwd -a <用户名>
wincvs安装和配置
启动wincvs需要安装python.
不要在工作盘上使用cvs作为目录名, wincvs使用cvs目录来建立和服务器的联系。主要需要配置/wincvs preferrence/general/, 如下:
- auth
- pserver
- path
- /cvsrepo
- host
- 192.168.0.112
- user
- amine
cvsroot:amine@@192.168.0.112:/cvsrepo(会根据前面设置自动填充)
在/wincvs preferrence/general/cvs/下设置cvs的Home目录(如e:\cvswintemp)
设置完后登录服务器, 输入密码, 登录成功显示:
*** CVS exited normally with code 0 ***
用菜单/view/browser loc/change, 切换到自己的工作盘。
管理员平时应该用普通用户工作;实现管理功能时才用administrator登录。administrator和普通用户最好使用不同的工作盘和工作目录。
使用外部diff工具
可以使用cs-diff, beyond compare, examdiff等。在/wincvs preferrence/general/wincvs/设置。diff selection时注意选择使用extern diff。
外部编辑器
在/wincvs preferrence/general/wincvs/设置
wincvs日常使用
import module:
选择要归档的源代码目录
checkout module:
用户利用wincvs工作前,需要从服务器得到工作目录,建立与服务器的联系。注意选择module的存储目录,module带服务器上路径。
add selection
添加需归档的新文件
remove selection
删除客户端的文件。再commit, 就会删除服务器上的文件,但并非物理删除,可以恢复。
commit selection
向服务器提交自己的修改。
有一个好习惯是,在你准备提交到服务器之前,先query update下,因为有可能别的开发者在你修改这个文件的同时,也可能也修改了这个文件,这就有可能会存在冲突,我们总是在提交前先处理冲突。
update selection
从服务器取最新版本, 注意不要损失自己的修改如果自己对本地版本修改过, 操作不成功, 显示M <文件名>可以再操作选择"get clean copy"强制取得服务器最新版本,本地文件会备份。
query update
这是个查询命令, 没有实际的操作。看本地版本和服务器版本是否统一, 可经常使用, 以获得工程的最新进展, 以协调工作。
M <文件名> 表示本地作过修改
U <文件名> 表示服务器版本已更新
C <文件名> 表示发生冲突
expoler selection
激活windows的资源管理器, 进行通常的文件操作。
diff selection
查看本地版本和服务器版本的区别。
graph selection
文件版本进化的图形显示。可用他来取得指定版本。administrator可利用来删除不想要的版本, 比如最新的不正确提交。
annotate selecttion:
查看文件各行的版本号, 修改者, 修改时间
macro/tcl/fast search modifed
指定要查看的目录, 看本地对那些文件作过修改
macro/tcl/build changelog
指定要查看的目录, 本目录下会生成Changelog文件。显示每天服务器版本作过哪些修改。
create tag on selection
开发到某个阶段, 对多个文件进行标记操作。标记总是在工程发行或进行重大修改时进行。
当软件开发到一定阶段,测试完毕,有了一个比较稳定可靠的版本后,如果这时又有新的需求到来,需要进一步开发,
若直接将改过的程序上传,就无法快速得到已经稳定的版本。
这就需要借助标签来实现,只要将稳定的版本都贴上统一的标签,
那么在下载时直接选择下载带有该标签的所有文件,就可以迅速得到所需的稳定版本。
create a branch:
将修改隔离到一个分离的开发线上。
例如:
我们设计了一个图书管理系统,把1.0版交给了客户A大学;
然后我们继续开发,有了新版本1.1版、1.2、1.3......
这时A大学告诉我们,1.0版本有bug,我们很快在1.0版本的源代码中找到了错误所在。
这时候,最简单的解决办法是给A大学一个bug patch。你会问,为什么不给客户最新版本?
原因很简单:第一,我们还没有检查最新稳定版本中又无此bug;
第二,客户的系统已经运行了一段时间,升级到最新版本上可能还会发生更多新问题。
那么,我们就应该在1.0版本上建立一个分支,在这个分支上进行开发,
修改bug ,创建bugpatch,客户马上就能解决问题了。
然后我们关起门来,查看最新版本上又无此bug;
如果有,就将分支合并到主版本上,解决最新版本的问题。
建议
- 某些你还不能确定其含义的操作请先用测试用项目test做试验。
- 成员不要随意删除已有文件。
- 提交代码时应注意某些文件是不需要提交到CVS服务器上的。
- 当你提交的代码与服务器中的代码冲突时(WinCvs会自动告诉你),应谨慎处理。
管理员操作
锁定文件:
一般而言,在项目小组中,项目经理会定期公布最新的基础版本,
要求小组成员都在这个基础版本上进行进一步开发。
在实际工作中,总会有些成员提前完成工作,
他们提交更改后,最新版本就会比项目经理发布的基础版本的version更高。
有时候,某些项目成员会有意无意修改基础版本,并且指定提交到基础版本上,
如果允许他们提交修改,大家可能都会在一个错误的基础版本工作,后果是不堪设想的。
锁定文件的操作如下:
菜单栏的admin->>comandline,输入这个命令:
cvs admin -l版本号 文件全名
注意,-l和版本号之间没有空格。
其他
版本号w.x.y.z表示意思:
w: 主版本号, x: 小版本号
y: 分支号, z: 分支修改号
网络资源
参考"WinCvs日常使用指南", 或英文版"WinCvs Daily Use Guide"
参考"使用WinCVS进行版本控制"
参考"WinCvs客户端使用技巧"