Linux游(1): diff, patch和quilt (下一个) 2 quilt 我们自己的项目可以用cvs或svn管理所有代码.但有时我们要使用其它开发人员维护的项目.我们须要改动一些文件.但又不能直接向版本号管理工具提交代码.自己用版本号管理工具重建整个项目是不合适的.由于大多数代码都是别人维护的,比如Linux内核.我们仅仅是想管理好自己的补丁. 这时能够使用quilt. 2.1 基本概念 quilt是一个帮助我们管理补丁的程序.quilt的命令格式相似于cvs: quilt 子命令…
Linux之旅(1): diff, patch和quilt (下) 2 quilt 我们自己的项目能够用cvs或svn管理所有代码.但有时我们要使用其它开发人员维护的项目.我们须要改动一些文件,但又不能直接向版本号管理工具提交代码.自己用版本号管理工具重建整个项目是不合适的,由于大多数代码都是别人维护的,比如Linux内核.我们仅仅是想管理好自己的补丁.这时能够使用quilt. 2.1 基本概念 quilt是一个帮助我们管理补丁的程序.quilt的命令格式相似于cvs: quilt 子命令 [參…
/***************************************************************************** * Linux diff patch * 声明: * 经常需要给代码打补丁,但是发现自己不会打补丁,经常看着补丁改代码,效率 * 那是一个低啊,不会就学学呗,反正patch有-R回退,不怕出错. * * 2015-12-28 深圳 南山平山村 曾剑锋 *********************************************…
此命令用于为特定软件包打补丁,他使用diff命令对源文件进行操作. 基本命令语法: patch [-R] {-p(n)} [--dry-run] < patch_file_name p:为path的缩写. n:指将patch文件里的path第n条'/'及其左边部分取消. -R:卸载patch包. --dry-run:尝试patch软件.并不真正改动软件. 使用实例: /home/sense/patch-2.6.19.1 ======================================…
diff是Unix系统的一个很重要的工具程序. 它用来比较两个文本文件的差异,是代码版本管理的基石之一.你在命令行下,输入: $ diff <变动前的文件> <变动后的文件> diff比较两个文件或文件集合的差异,并记录下来,生成一个diff文件,这也是我们常说的补丁文件.也使用patch命令对相应的文件打补丁.它的显示结果不太好懂,下面我就来说明,如何读懂diff. FILES的格式: FILE1 FILE2 :源是一个文件,目标也是文件.这两个文件必须是文本文件.以逐行的方式,…
UNIX世界的软件开发大多都是协作式的,因此,Patch(补丁)是一个相当重要的东西,因为几乎所有的大型UNIX项目的普通贡献者,都是通过 Patch来提交代码的.作为最重要的开源项目之一,Linux,也是这样的.普通开发者从软件仓库clone下代码,然后写入代码,做一个Patch, 最后用E-mail发给Linux Kernel的维护者就好了.Git最初作为Linux的版本控制工具,提供了透明.完整.稳定的Patch功能. 我们先介绍一下Patch是什么.如果一个软件有了新版本,我们可以完整地…
http://rails-deployment.group.iteye.com/group/wiki/1318-diff-and-patch-10-minutes-guide 情景一:你正尝试从代码编译一个软件包,发现有人已经对代码进行了小小的修改以便在你的系统上编译.他们通过补丁的方式发布自己的成果,但是你却不知道该如何使用它.答案是你使用一个叫做patch(很贴切)的命令行工具将补丁应用到原始代码上. 情景二:你下载了一个开源软件包的代码,花了一个小时左右稍作修改,成功的让它在你的系统上编译…
作为程序员,了解diff&patch命令是非常必要的.比如说我们发现某个项目有bug代码,而自己又没有svn的提交权限,那么此时最合适的解决方法就是用diff命令做一个补丁发给项目成员.项目成员通过patch命令可以立刻知道你的意图.有人会说直接传一个新文件不是更简单?不要忘了,一个patch文件尺寸更小传输更快,而且可以明显的看到都做了哪些修改. 保证当前目录是demo名录: # mkdir demo# cd demo 先模拟一个项目目录old: # mkdir -p old/a/b# vi…
linux下一个有意思的问题(文件名以短划线开头) 这本是无意中的一个发现. 在linux下,文件名中含有 - 是没有问题,但是如果文件名是以-作为第一个字符的,那么就比较麻烦了. 问题演示 看这里,以短划线开头的文件名似乎对mv cp  rm   等操作免疫了.利用这个特性可以制造出一些比较麻烦的文件或者文件夹来. o@o-pc:~$ ls -python.md o@o-pc:~$ -python.md mv:无效选项 -- p Try 'mv --help' for more informa…
如何生成patch:修改一个地方,然后git diff > xxx.patch 就会生成一个patch文件,这里的关键似乎是, 源文件的某个模块的版本要和线上发布的最新版本要一致,这样patch才会被官方采纳. git diff --help就会激活一个帮助页面git xxx --help 如何采用patch下载patch文件到当前文件夹,保持环境文件和线上一致,然后git apply -v xxx.patchrm -rf xxx.patchtouch .gitignorevi .gitigno…