LinuxSir.Org  
| 网站首页 | 注册账号 | 论坛帮助 |

欢迎来到LinuxSir.Org!
您还未登录,请登录后查看论坛,或者点击论坛上方的注册链接注册新账号。


发表新主题 回复
精华主题  
主题工具
旧 05-01-12, 11:54 第 1 帖
bigml
 
bigml 的头像
 
 
注册会员  
  注册日期: Sep 2003
  我的住址: 湖南长沙
  帖子: 185
  精华: 2
 

标题: CVS用后感,欢迎大家来补充


CVS希望提供给用户的功能是尽可能完整且方便的记录项目的开发轨迹, 我只是个人使用了一段时间的CVS, 所以以下只是单用户的感受:

1. 什么时候需要commit in?
使用CVS的目的是为了记录项目开发的功能性添加, 删除, 更新的轨迹. 即我们只有在_完成_了对项目的功能性的修改后才
需要提交我们所做的修改. 而不是说我把修改提交到CVS库里面是因为怕丢失我今天或近几天所做的修改(实际上, 只要你的
硬件不是水货中的极品, 在GNU系统上进行开发是完全不用为此*心的).
举个例子: 我想为项目1修改功能X(包含了添加和删除). 期间需要修改文件A的函数foo(), 文件B的函数bar().
我们不应该修改完foo()后就提交一次, 修改bar()后又提交一次. 而是应该等我们修改完foo() & bar(), make, debug, 觉得
对X的功能修改满意后再commit in. 可能我在提交的时候会忘记对哪些文件做了哪些修改了, 但只要记得使用cvs status和
cvs diff, 问题应该容易解决.

2. commit log应该怎么写?
初学者在commit in写log的时候往往是在项目根目录下进行commit in, 然后写本次修改的记录. 这样就会造成修改过的文件
具有相同的日志记录, 从而带来两点不利之处: 没有针对性且日志记录很多, 不便于查看.
所以我建议的方法是针对不同的修改, 写单独的log. 换句话说, 就是对单个文件或具有类似修改的某组文件分别提交,
写不同的日志.
在上面的例子中, 假如我们为功能X修改了文件A之函数foo(), A_1之foo(), A_2之foo(), A_3之foo(), B之bar(),
我们提交的方法应该是cvs ci A A_1 A_2 A_3 && cvs ci B.
如此一来, 我们将很难对功能X的修改进行全局性的把握, 因为文件A, A_1, B的revision编号很有可能是不一样的.
解决这个问题的方法可以是使用ChangLog文件, GNU系统上面很多工具可以很方便的将CVS文件之log针对性的提取到ChangLog
文档里面, 例如我们在上面可以使用cvs ci A A_1 A_2 A_3 && cvs ci B后再将刚刚输入的所有log信息复制到ChangLog内.
所以通常情况下提交的最后一步是cvs ci -m"" ChangLog^-^

3. 我是不是可以取出我的任意一次commit in?
是的, 曾经有段时间一直认为只能取出打了标记的历史版本, 其实CVS为项目记录了每次commit in的动作, 用户可以通过
revision内部编号取出任意某个文件的任意历史版本(e.g. cvs co -r1.3 src/server.c).
在用户想放弃对某些文件至上提交以来的所有修改时, 再提取一次上次版本覆盖当前工作文件就行了, 不需要用户额外去备份.

4. 我是不是可以修改CVS库中以前的日志记录?
是的, 可以通过cvs admin -m 1.2:"`cat newlog.txt`" server.c来对以前的log message进行更新.
(这个命令找得我好苦!)

最后一点, 建议使用GNU Emacs进行项目开发却还在终端下使用CVS的用户看看VC(version control NOT Vi$ual C++)和PCL-CVS的使用手册, enjoy!







__________________
生活似水 平淡中孕育滋味

此帖于 05-01-12 11:57 被 bigml 编辑.
  bigml 当前离线   回复时引用此帖
旧 05-01-14, 11:29 第 2 帖
netdigger
 
netdigger 的头像
 
 
注册会员  
  注册日期: Oct 2002
  我的住址: 上海
  帖子: 302
  精华: 1
 

好贴,受益非浅







__________________
LFS ID: 6226
Name: netdigger
First LFS version: 5.0
Current LFS Version:6.3

PIII 550 + 320M + 8G LFS 6.3
  netdigger 当前离线   回复时引用此帖
旧 05-01-20, 20:34 第 3 帖
xlMo 帅哥
 
 
 
注册会员  
  注册日期: Aug 2004
  帖子: 109
  精华: 0
 

我到现在还不知道怎么用cvs。。







__________________
www.xlmo.org
  xlMo 当前离线   回复时引用此帖
旧 05-12-08, 15:36 第 4 帖
maotou3169
 
 
 
注册会员  
  注册日期: Dec 2005
  帖子: 1
  精华: 0
 

标题: 怎么管理CVS的用户


怎么管理CVS的用户阿?比如添加一个用户到CVS用户列表,有没有什么命令直接加的?
  maotou3169 当前离线   回复时引用此帖
旧 05-12-08, 21:32 第 5 帖
bookstack 帅哥
 
 
 
注册会员  
  注册日期: Jan 2004
  帖子: 714
  精华: 3
 

一般cvs/svn的提交只有一个要求,能够通过编译。HEAD/TRUNK里面有bug是正常的。
  bookstack 当前离线   回复时引用此帖
旧 05-12-09, 10:28 第 6 帖
haohao_h 帅哥
 
haohao_h 的头像
 
 
注册会员  
  注册日期: Apr 2005
  帖子: 366
  精华: 0
 

现在好些大型站点都在转svn了
  haohao_h 当前离线   回复时引用此帖
旧 07-01-30, 21:23 第 7 帖
realtang 帅哥
 
realtang 的头像
 
 
版主  
  注册日期: Apr 2004
  我的住址: 上海
  帖子: 1,246
  精华: 8
 

用eclipse提供的CVS客户端功能,已经非常的好用。







__________________
CPU : P4 2.0
主板 : 华擎P4VT8+
内存 : Kinston DDR400 512MB
显卡 : 七彩虹6200A-GD2 CT超频版
声卡 : 主板集成CMI9739六声道
硬盘 : 迈拓金钻10 80GB IDE
OS : Debian GNU/Linux Etch
GUI :GTK based on DirectFB
_______________________________
Help others by sharing your knowledge!
  realtang 当前离线   回复时引用此帖
旧 07-01-30, 21:47 第 8 帖
gamedragon
 
gamedragon 的头像
 
 
注册会员  
  注册日期: Mar 2004
  帖子: 560
  精华: 0
 

改用SVN之后,还是觉得SVN的管理方式更符合我的习惯。
  gamedragon 当前离线   回复时引用此帖
旧 07-01-31, 12:18 第 9 帖
yist111
 
yist111 的头像
 
 
注册会员  
  注册日期: Oct 2004
  帖子: 60
  精华: 0
 

SVN要好些
  yist111 当前离线   回复时引用此帖
旧 07-02-10, 23:27 第 10 帖
exir
 
exir 的头像
 
 
注册会员  
  注册日期: Jun 2003
  帖子: 3
  精华: 0
 

确实,现在都用svn了。cvs老了。提交的唯一要求也确实是能通过编译,svn鼓励以提交来备份源码。
  exir 当前离线   回复时引用此帖
发表新主题 回复


主题工具

发帖规则
您 [不可以] 发表新主题
您 [不可以] 回复主题
您 [不可以] 上传附件
您 [不可以] 编辑您的帖子

已 [启用] BB 代码
已 [启用] 表情符号
已 [启用] IMG 代码
已 [禁用] HTML 代码
[论坛跳转…]


所有时间均为[北京时间]。现在的时间是 12:42


Powered by vBulletin 版本 3.6.8
版权所有 ©2000 - 2010, Jelsoft Enterprises Ltd.
官方中文技术支持: vBulletin 中文
版权所有 ©2002 - 2009, LinuxSir.Org