用subversion(SVN)进行版本管理 (三)

来源:互联网 发布:91助手mac版官方下载 编辑:程序博客网 时间:2024/05/20 05:30
然后直接点击merge进行合并,你也可以通过dry run来看是不是两者之间有差异。由于没有其它人修改主干,所以合并的很顺利,下图是xb_051115与主干合并后的结果。合并完毕之后,由xb对主干进行提交。



3.lzj将lzj_051129分支合并到主干,解决冲突
xb合并完毕之后,lzj要将他的分支合并到主干上去,方法同上。但是由于xb已经修改过主干,所以产生了冲突,会弹出一个冲突对话框。双击对话框中的产生冲突的文件名,就可以调出工具对此文件进行合并,下图是我们用merge工具显示的界面。


  • 首先比较第一个窗口与第二个窗口,把结果修改合并到第二个窗口。
  • 然后确保光标处于第二个窗口时,点击上图中红色圈圈所示的按钮。这样会把第二个窗口的内容全部复制到第三个容口。之后保存,退出。
  • 然后在工程目录上点右键,进行SVN->Resolved。这样会删除无用的临时文件。
  • 最后提交所作的修改,并添加详细的注释。

其它注意事项
SVN中的标签
与CVS不同,使用SVN时不用专门为目录添加标签,因为SVN也对目录进行版本管理。

我们在提交时写好注释(比如重要的版本提交时使用051201之类的日期作为开头),就可以通过注释来查找比较重要的目录版本号,相当于CVS或VSS中的标签。

另外,每个工程都会有一个版本说明文件,通过此文件可以查找关键版本。

文件的删除、移动与重命名
你可以重命名、移动或删除你的文件或文件夹,但请使用SVN进行这些操作,否则之前的版本信息会丢失。

使用SVN删除、移动与重命名文件夹的方法是在文件/文件夹上点右键进行SVN操作,或直接在资源浏览器中使用右键拖放(会弹出SVN选项)。

文件的删除、移动与重命名之前,必须保证工作目录是最新的版本;进行这些操作之后,需要进行提交。

版本的回退
在代码的编写过程中,难免会有不尽人意的地方,你也许需要回退到某一个版本,但是在这个过程中可能有一些文件你想保留,也有一些文件你不想保留,这就牵扯到很复杂的版本管理过程,在这里给大家推荐几种方法。

1. 若是你编辑了工程,在没有提交的前提下,你想放弃这些修改,你可以直接选择revert就可以更新到工程的最新的版本。

2. 若是你想退回到某一个版本,你就可以直接选择update to reversion如图,这样我们就可以把我们的版本回退到你选中的版本去,这种情况下SVN并没有显示出有什么冲突,并且新建立的文件也还在,但是在这种情况下你并不能直接在你回退后的版本上进行编辑,因为SVN的版本控制还是在最新的主干上。我们需要 update并解决冲突。

3. 你可以直接选择revert changes from this revision如图,这样的话你可以直接解决冲突并提交。不过这种方法的不足是,你新建的文件都没有了,整个工程都回退到之前的版本了。

4. 我推荐的一种方法是,直接export一个你需要的版本,然后用你export的版本覆盖你的最新的版本,这样你就可以不丢失你新建的文件,同时获得head的SVN控制文件。




提交的时机
每个工程会有很多个小模块,当某个模块达到稳定的时候,你就需要提交一次,以免写下个模块代码的时候出现不可恢复的错误。

每一次提交需要前,需要通过pclint检查,保证是一个编译没有错误的版本。当提交比较稳定的版本的时候,同时要修改你的版本号。

提交的时候要添加注释,若多人共同修改同一段代码我们就需要为注释添加上更加详细的说明

版本说明文件
版本说明文件为xml表格,可用excel编辑,它会记录下关键的版本信息。

版本说明文件内容如下表。发布版本是指用户对外公布的版本号,后文中有详细描述;Revision是SVN内部的工程文件夹的版本号。一个发布版本可能对应多个Revision:
http://218.242.131.184/renshi/zc/login.jsp
 
原创粉丝点击