技术开发 频道

版本控制系统(VCS)入门插图教程

    Conflict

    Conflict往往来自不同用户,同时对同一个内容做出了不同的修改。Joe想删除eggs,加入cheese(-eggs, +cheese),Sue想删除eggs,加入hot dog(-eggs, +hot dog)。

    从某个角度看,这有点像一场比赛:如果Joe首先check in,那么他的编辑将写入文件。(Sue的编辑将被拒绝。)

    如果他们同时提交了这种互相冲突的变动,VCS将报告一个conflict,不允许check in。由你来决定,是check in一个更新的版本,还是就地解决这个冲突。下面是一些可能的办法:

    * 重做一遍编辑。首先,将文件Sync到最新的版本(r4),这时cheese已经在文件中了。你再重做一遍剪辑,加上hot dog。

    * 覆盖掉他人的修改。将文件check out到最新的版本(r4),用你的版本将这个版本覆盖,再check in。也就是说,你等于删掉了cheese,替换为hot dog。

    Conflict不是很常见,但是处理起来很麻烦。通常,我会选择上面第一种处理方法。

    Tag

    大概不会有人想到VCS早就符合Web 2.0的潮流吧?许多VCS允许你对任意编辑做一个标签(label),方便以后的引用。这样一来,你就可以用“Release 1.0”,指代内部的版本号码。

    在Subversion中,tag其实是不再让你编辑的branche,它们只是方便为了以后的使用,让你能够明确看到1.0版中到底包含了哪些东西。因此它们就停顿在那里,不再变动了。

    (in trunk)
    svn copy http://path/to/revision http://path/to/tag

0
相关文章