cvs存储程序代码的原理

来源:百度知道 编辑:UC知道 时间:2024/06/09 02:41:09
cvs是怎样管理客户端提交的代码的?
它又是怎麽能让客户可以察看以前版本内容的?
希望能说详细点。。
1楼的你给的这个我已经看过了。不是我想要的。
我的意思是它怎麽管理程序代码,可以让我们能够察看以前的代码的。我知道内容是cvs把文件之间不同的部分存储起来,但是我想知道的更详细一点.xiexie

看看这个,应该说的比较详细:
http://book.51cto.com/art/200805/74834.htm

---无法研究到CVS的内部,但是有人总结出了下面这些观察心得:

CVS有服务器和本地沙盒构成。在服务器端对每个文件维护着一个修订号(Revision,简记为SR),每次对文件的更新,都会使得文件的修订号加1。在沙盒中也对每个文件维护着一个修订号(简记为CR),CVS正是通过这两个修订号的关系,来进行Update,Commit和发现冲突等操作操作的。下面,看一下各个操作与修订号的关系:
1)commit操作。commit操作把本地对文件的修改提交到服务器端。当执行commit操作时,依次做两件事:a)判断CR是否等于SR,如果CR<SR,则表示出现冲突,不进行提交操作;如果CR=SR,则执行提交操作。b)将SR、CR都加1(注意:如果上一步是CR=SR,才进行此步)。
2)update操作。update操作把其他用户对文件的修改更新到本地。当执行update操作时,依次做两件事:a)判断CR是否等于SR,如果CR<SR且本地文件已修改,则表示出现冲突;如果CR<SR但本地文件未修改,则更新本地文件;如果CR=SR,则不做任何操作。b)更新CR,使之等于SR。
3)update special操作。功能比update更强大,参数更多。如果用户想放弃本地修改,而与服务器端同步,可以使用该操作。并选中“clean copy”复选框(注:只对于tortoiseCVS用户)。此外,还可以选择具体同步到服务器的那个版本。
4)checkout操作。从服务器端获得副本,并初始化CR,使之等于SR。
使用CVS有2个操作顺序,一是先commit,如果冲突再执行update,否则不执行update,将此操作顺序称为commit优先法。二是先update,修改文件后,再执行commit,如果冲突,需要再执