svn版本控制之道-读书笔记

1. 分支和标签
   1)分支用来开发,标签通常是一个快照,最好是不允许修改,对于svn来说它并不能区分trunk,branch和tag,
   实际上你可以给它们取别的名字,但是这三个名字更容易让人理解。
   2)通常我们最好对一个单一的版本打标签,svn也支持你在一个标签里面包含不同的版本,比如你在本地工作拷贝上打tag,
   但是有些文件夹没有更新到最新的版本。不过这不被推荐。
   3)一般情况我们merge的时候会merge所有的版本,比如一个分支创建的时候是版本3,现在最新的版本也就是head是版本7,
   现在我们要merge到trunk下,我们到trunk的工作拷贝下去做merge,可以选择merge所有版本(从3到7),也可以选择只merge其中的一个版本。
   在有的情况下merge其中一个版本是很有用的,比如我们在分支开发时发现了一个bug,修正bug后提交了代码,这个提交的版本是6,这时候我们需要merge
   这个bug修正到所有分支和trunk,但是我们不想这个分支中正在开发的其它代码,所以我们可以选择只merge版本6提交的改动。
   如果这个bug比较到,一次没有办法修正,前后可能需要提交多个版本,这时候我们通常需要以下步骤
    a.把包含bug的代码分支发布到新的bug修正分支中
    b.给新分支打tag,标记bug修正开始
    c.修正bug
    d.修正完成后给分支再打一个tag,标记bug修正结束
    e.使用这两个tag来把修正代码合并到所有受影响的分支上。
   
2. 合并操作
   1)解决冲突
      出现冲突时会出现三个文件.mine,.left,.right, mine是指当前你的工作拷贝中的版本,right是你要merge的版本,left还不太确定是什么。
      当你处理了冲突后,将文件标记为冲突已解决,这些临时文件会自动被删除,并且冲突的文件就可以被提交了。
3. 有关项目仓库
   建议不要使用多个仓库,这会增加复杂性和维护的工作量,当你确实需要分离成多个仓库的时候,svn也可以轻松的帮你分离他们。
   在一个项目仓库中,多个项目的结构有两种建议的方式
   1)project1
        -trunk
        -tags
        -branches

   2) trunk
        -project1
        -project2
      tags
        -project1
        -project2
      branches
        -project1
        -project2
    推荐第一种更好管理一点
4. 版本控制是三大必要的技术实践之一
   1)务实的单元测试
   2)务实的项目自动化
   3)版本控制

5. 项目的顶级结构应该包括
    readme - 项目的完整描述
    building  - 如何构建
    glossary  - 记录术语

6. subversion使用webdav作为客户端和服务器之间的协议,这是http协议的一个扩展
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值