`
langgufu
  • 浏览: 2310921 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

SVN—patch的应用(create patch,apply patch)(转)

阅读更多
1.create patch 
使用create patch可以生成一个或者多个修改过的文件和当前版本差异的patch(支持目录树) 
通常情况下,create patch将修改保存为.patch或.diff文件 
可以将.patch或.diff文件的内容复制出来,发给需要审查的人 
.patch或.diff文件中记录了发生这个patch的版本号以及具体修改的内容 
针对某个文件或某几个文件的若干种修改,可以生成多个.patch或.diff文件 
2.apply patch 
可以将.patch或.diff文件应用到对应版本的项目,就像打补丁一样 
同一个项目/文件夹下,可以选择应用需要的patch 
通常来说,应用一个patch时文件版本和生成这个patch时文件的版本是一致的;如果不一致,也可以强制应用,svn会自动进行diff(这时候需要手动合并) 
linux下,可以使用系统的patch命令来应用patch,eg: patch -p0 <xxx.patch 
3.使用 
暂时不需要提交或不允许提交的修改,可以选择create patch来保存修改的内容 
选择create patch来保存修改的内容并且提交patch,通过审查后,(在服务器端)应用patch 
当一个功能有多种解决方案时,可以生成多个patch,(提交后)分别经过测试,再决定应用哪个patch 
多个功能分别需要改同一个文件的不同地方(即没有同一行),可以做成多个patch,应用patch的顺序没有要求(在linux下应用也一样成功,只是会生成多个.orig文件) 
多个连续性的功能,他们修改的文件都与一个base作patch,例:p1在v1的基础上开发v2,生成v2和v1之间的patch1;p2在v2的基础上开发v3,生成v3和v1之间的patch2,这样只要应用patch2也就应用了patch1。 
4.带来的问题 
一个较早的patch,在经过多轮提交后,如果想再要应用,需要严格的diff 
如果两个patch分别改了同一行代码,应用第一个patch后要再应用第二个patch时,仍然需要diff。如果在linux下,会产生冲突,生成.orig和.rej两个文件(此时仍然需要手动进行比较合并) 
第3部分提到的连续性,要准确的预见到,比较困难 
第3部分提到的多个连续的功能,后做的功能的某个文件更新了先做的功能的内容,但先做的功能可能还涉及到其他文件,容易造成漏更新文件的情况 
 
分享到:
评论

相关推荐

    SVN一份提交往多个分支合入.docx

    在该分支上,通过菜单选择“VCS” -&gt; “Apply Patch”,然后找到之前创建的补丁文件并加载它。SVN会分析补丁文件,将7月分支的改动应用到当前分支。 3. **检查和提交**: 应用补丁后,需要对代码进行审查,确保...

    SVN操作入门指南.pdf

    - **Create(Apply)patch创建(应用)补丁**:生成或应用代码变更的补丁文件,便于代码审查和集成。 #### 四、分支与合并 ##### 分支的概念 SVN支持创建分支,即从主干(trunk)中分离出独立的开发线,用于进行...

    SmartSVN-reference

    - **Apply Patch**:应用补丁文件。 7. **Properties**:查看和编辑文件或目录的属性。 - **Edit Properties**:编辑文件或目录的属性。 - **Set or Delete Property**:设置或删除文件或目录的属性。 - **MIME-...

    svn中文资料不可多的

    通过“Apply patch”命令可以将补丁文件应用到目标位置。这对于在不同环境中复制更改非常有帮助。 #### 十九、副本重定位 如果需要将工作副本移动到新位置,可以使用“Relocate”命令。这有助于保持版本控制的一致...

    虚拟机 Virtual Machine.docx

    - **Apply patch**:应用补丁,将补丁应用到文件。 - **Properties**:属性,SVN中文件的元数据。 - **SVN Update**:获取最新的版本,将本地工作副本更新到SVN服务器上的最新状态。 - **SVN Commit**:提交入库,将...

    jsdiff一个javascript的文本差异比较实现

    6. **createPatch**:从两个文本版本创建一个补丁字符串,记录它们之间的差异。 7. **applyPatches**:批量应用一系列补丁到原始文本。 **应用场景** 1. **代码审查**:在代码审查工具中集成jsdiff,可以帮助...

    Subversion使用手册(开发人员

    使用“Apply Patch”功能应用补丁。 #### 二十二、谁修改了哪一行? - **定义**:追踪文件中的每一行是由谁修改的。 - **操作步骤**: 1. 使用TortoiseSVN的“Blame”功能。 2. 查看每一行的修改记录。 #### ...

Global site tag (gtag.js) - Google Analytics