SVN与TortoiseSVN实战:补丁详解(转)
硬广:《SVN与TortoiseSVN实战》系列已经写了五篇,第二篇《SVN与TortoiseSVN实战:标签与分支》和第三篇《SVN与TortoiseSVN实战:TortoiseSVN新建及合并分支》重点介绍了标签和分支的概念及实际操作演示,关注人数较多,三、四篇《SVN与TortoiseSVN实战:冲突详解(二)》详解了SVN如何判定冲突及冲突文件说明和解决冲突方法。
本篇详细SVN中补丁的概念,版本控制之道这本书对于SVN的讲解比较全面了,但书中也没有讲解补丁的概念,关于SVN补丁的介绍也寥寥无几。
其实学习和掌握补丁的用法后,在某些项目环境中还是有用武之地的,主要讲以下两点:
1、SVN补丁的概念;
2、SVN补丁的应用场景;
3、SVN补丁的制作及应用;
感谢博友的建议,在每篇前写明本篇所要讲述的重点 ~。~
1、SVN补丁的概念
SVN补丁其实并不神秘,只是平时工作中接触较少。
SVN补丁可以理解为一个patch格式的文件,这个patch格式文件可以忠实记录文件变动,而这个patch文件是根据SVN中文件的修改制作的。
Create patch和Apply patch就是创建和应用补丁,至于Properties为什么在这一组会在属性篇中讲,TortoiseSVN菜单的分组划分是很有设计哲学的,没事时可以仔细研究下。
2、SVN补丁的应用场景(一)
第一种场景看下这两张图:
图一的方式可以用之前讲的主干/分支来解决,每次修改主线版的内容通过合并的方式将修改合并到定制版中,这种方式需要在每个定制版中合并,人工每次操作非常麻烦,还容易出错。
图二是使用补丁的方式,主线版修改后创建补丁,在所有定制版中统一应用一次补丁,其目录结构如下:
patches下是所有定制版的项目目录,这样划分可以在整个patches目录上应用一次补丁,大大简化了操作。
2、SVN补丁的应用场景(二)
还有一种是涉及到权限的应用,将某些项目组的成员配置成只有读权限,而没有写权限。
这些只读权限的成员不能直接提交修改,而需要将修改制作成补丁,发给具有写权限的成员,审核通过后应用补丁,提交到SVN中。
这也是基于SVN的一种权限管理,熟悉Git的应该会比较理解。
3、SVN补丁的制作及应用(一)
最简单的方法是基于修改的文件直接创建补丁,在将本地文件修改后,在签入SVN之前(叹号标记时),选中文件,使用TortoiseSVN的Create patch菜单可以直接将文件的修改创建为patch格式的补丁文件:
3、SVN补丁的制作及应用(二)
还有一种方式可以基于已签入的改动来创建补丁,这种方式甚至可以创建降级补丁。
在主干目录上使用TortoiseSVN的Show Log菜单,用Ctrl选中两个版本,右键使用图中标记的菜单:
新窗口中使用File Save存为补丁即可。
补丁的应用非常简单了,就不演示了,选中应用位置使用Apply patch菜单选择应用的补丁即可。
记录,为更好的自己!
http://www.cnblogs.com/ym123/p/4354959.html
SVN与TortoiseSVN实战:补丁详解(转)的更多相关文章
- SVN与TortoiseSVN实战:补丁详解
硬广:<SVN与TortoiseSVN实战>系列已经写了五篇,第二篇<SVN与TortoiseSVN实战:标签与分支>和第三篇<SVN与TortoiseSVN实战:Tor ...
- SVN与TortoiseSVN实战:文件加锁详解
硬广:<SVN与TortoiseSVN实战>系列已经写了八篇,本篇是完结篇,整个系列结合TortoiseSVN对SVN中容易被忽视的部分进行了详解,以技巧性为主. 本篇详解使用Tortoi ...
- SVN与TortoiseSVN实战:冲突详解(二)
硬广:<SVN与TortoiseSVN实战>系列已经写了四篇,第二篇<SVN与TortoiseSVN实战:标签与分支>和第三篇<SVN与TortoiseSVN实战:Tor ...
- SVN与TortoiseSVN实战:冲突详解(一)
硬广:<SVN与TortoiseSVN实战>系列已经写了三篇,第一篇<SVN与TortoiseSVN实战:从入门到精通>,第二篇<SVN与TortoiseSVN实战:标签 ...
- SVN与TortoiseSVN实战:属性的奇技淫巧(一)
硬广:<SVN与TortoiseSVN实战>系列已经写了六篇,本系列结合TortoiseSVN对SVN中容易被忽视的部分进行了详解,预计再用三.四篇来结束这个系列. 本篇详解一下SVN的属 ...
- SVN与TortoiseSVN实战:属性的奇技淫巧(二)
硬广:<SVN与TortoiseSVN实战>系列已经写了七篇,本系列结合TortoiseSVN对SVN中容易被忽视的部分进行了详解. 关于属性的奇技淫巧较多,分为两篇来写,第一篇详见< ...
- ARP缓存表的构成ARP协议全面实战协议详解、攻击与防御
ARP缓存表的构成ARP协议全面实战协议详解.攻击与防御 1.4.3 ARP缓存表的构成 在局域网的任何一台主机中,都有一个ARP缓存表.该缓存表中保存中多个ARP条目.每个ARP条目都是由一个IP ...
- SVN与TortoiseSVN实战:TortoiseSVN新建及合并分支
硬广:<SVN与TortoiseSVN实战>系列已经写了两篇,第一篇<SVN与TortoiseSVN实战:从入门到精通>,关于分支和标签的知识介绍可翻阅第二篇<SVN与T ...
- SVN与TortoiseSVN实战:标签与分支
最近在写<IOS性能调优系列>,今天偷个懒,写写SVN与TortoiseSVN实战的第二篇,标签与分支. 第一篇详见<SVN与TortoiseSVN实战:从入门到精通> SVN ...
随机推荐
- perl 循环类选择器 ,爬取内容
jrhmpt01:/root/lwp/0526# cat 0526.txt <div class="TXD_sy_title"><span class=" ...
- 升级版:深入浅出Hadoop实战开发(云存储、MapReduce、HBase实战微博、Hive应用、Storm应用)
Hadoop是一个分布式系统基础架构,由Apache基金会开发.用户可以在不了解分布式底层细节的情况下,开发分布式程序.充分利用集群的威力高速运算和存储.Hadoop实现了一个分布式文件系 ...
- python - Django: Converting an entire set of a Model's objects into a single dictionary - Stack Overflow
python - Django: Converting an entire set of a Model's objects into a single dictionary - Stack Over ...
- [置顶] 用mootools实现checkbox全选功能
全选时,所有的单个checkbox都要选中,反过来也可以实现 //全选按钮 $('chkall').addEvent('click',function(){ $$('input[name=" ...
- SQL逆向工程
话说有个现成的SQL数据库,四十来张表,每张表多的几十的字段,少的十几个字段.老板说为了下一步大家好好利用这个数据库中的数据,让你研究一下该数据库中的所有的表和字段之间的联系.这是一个什么性质的工作, ...
- HTTP数据包头解析(简单清楚)
[转]HTTP请求模型和头信息参考 参考: http://blog.csdn.net/baggio785/archive/2006/04/13/661410.aspx模型: http://blog.c ...
- delphi中一切皆指针
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Form ...
- jquery用div模拟一个下拉列表框
原文 jquery用div模拟一个下拉列表框 今天分享一个用我自己用jquery写的,用div模拟下拉列表select,这个效果网上有很多,但是写一个有自己思路的代码效果,更有成就感,先看截图: 自我 ...
- boost.asio系列——buffer
创建buffer 在io操作中,对数据的读写大都是在一个缓冲区上进行的,在asio框架中,可以通过asio::buffer函数创建一个缓冲区来提供数据的读写.buffer函数本身并不申请内存,只是提供 ...
- Problem K: Yikes -- Bikes!
http://acm.upc.edu.cn/problem.php?id=2780 昨天做的题,没过……!!!伤心……题意:给你n个单位,n-1组关系,让你单位换算……解题思路:Floyd算法自己听别 ...