svn/git的diff、patch
svn/git的diff、patch
前几天,正当我突突的写代码,企业微信嘀嘀一声响”在不,过来帮我看个bug”。本人一向助人为乐,高兴的冲了过去,然后就开始了一段长达1分钟的问题描述。很明显,此同学只知道结果不对,并没有找出程序的根本问题。
好吧,心凉了一半,果然是找我来干体力活的。坐定,抬手开始调试代码。。。
调试开始,打开编辑器,什么,竟然用的大型IDE,好吧,忍了,卡死了。刚写好一句代码,准备按ctrl+B运行,没反应,再按,依然没反应,好吧,看来这兄弟啥也没配置。刚想打开终端,想想算了,估计环境变量也没有加。再有就是,毕业这么多年,不管是家用还是办公,用到的只有mac和Linux,今天这windows系统,难道要在这阴沟里坏了一世英明。默默的打开windows终端,输入svn info,哇,svn竟然默认加了进来,好吧,有办法了。。。
~ cd /projectdir #进入项目根目录
~ svn diff > test.diff #将同学的修改生成diff文件
通过企微把test.diff发到我的帐号,一共几十KB。然后就告别了该同学,并告诉他我一会回来,不要乱动。终于回到了我的电脑,接收test.diff文件,然后打开熟悉的终端:
~ cd /projectdir # 进入项目根目录
~ svn up # 更新到最新版本
~ svn st # 查看我本机是否有未提交的代码。输出是空,果然所有代码都提交过了
~ patch -p0 < /patch/test.diff # 应用diff文件
此时,我的代码已经跟刚才那位同学一模一样了,好吧,突突的调试代码,很快,问题找到、解决。
现在来总结一下,一共使用了两条命令:
- svn diff > test.diff # 作用是生成diff文件
- patch -p0 < /patch/test.diff # 将diff文件应用到我的代码
好吧,现在问题已经解决了,那么接下来我是应该直接提交代码到版本库呢,还是怎么办。经常长达10余秒的思考,好吧,应该把代码还给那位同学。
再次,在我的项目根目录执行 svn diff > ok.diff,将ok.diff通过企微传给同学。然后迅速跑到同学工位,清空他本地的代码修改,应用ok.diff文件,提交代码到版本库
~ cd /projectdir # 进入项目根目录
~ svn revert * --depth=infinity # 清空他本地的修改
~ svn up # 更新svn (习惯性操作)
~ svn st # 查看当前状态 (习惯性操作)
~ patch -p0 < /patch/ok.diff # 应用diff文件
~ svn diff # 再次查看修改的内容 (习惯性操作)
~ svn ci -m "完成**功能"
终于,收工!
svn/git的diff、patch的更多相关文章
- git diff patch方法
UNIX世界的软件开发大多都是协作式的,因此,Patch(补丁)是一个相当重要的东西,因为几乎所有的大型UNIX项目的普通贡献者,都是通过 Patch来提交代码的.作为最重要的开源项目之一,Linux ...
- Linux diff patch
/***************************************************************************** * Linux diff patch * ...
- 关于git的打patch的功能
UNIX世界的软件开发大多都是协作式的,因此,Patch(补丁)是一个相当重要的东西,因为几乎所有的大型UNIX项目的普通贡献者,都是通过 Patch来提交代码的.作为最重要的开源项目之一,Linux ...
- Linux之旅(1): diff, patch和quilt (下)
Linux之旅(1): diff, patch和quilt (下) 2 quilt 我们自己的项目能够用cvs或svn管理所有代码.但有时我们要使用其它开发人员维护的项目.我们须要改动一些文件,但又不 ...
- Linux游(1): diff, patch和quilt (下一个)
Linux游(1): diff, patch和quilt (下一个) 2 quilt 我们自己的项目可以用cvs或svn管理所有代码.但有时我们要使用其它开发人员维护的项目.我们须要改动一些文件.但又 ...
- 如何用git命令生成Patch和打Patch
在程序员的日常开发与合作过程中,对于code的生成patch和打patch(应用patch)成为经常需要做的事情.什么是patch?简单来讲,patch中存储的是你对代码的修改,生成patch就是记录 ...
- 十分钟掌握diff&patch用法
作为程序员,了解diff&patch命令是非常必要的.比如说我们发现某个项目有bug代码,而自己又没有svn的提交权限,那么此时最合适的解决方法就是用diff命令做一个补丁发给项目成员.项目成 ...
- git -c diff.mnemonicprefix=false -c core.quotepath=false -c credential.helper=sourcetree fetch origin
git -c diff.mnemonicprefix=false -c core.quotepath=false -c credential.helper=sourcetree fetch origi ...
- SVN/GIT源代码泄露
造成SVN源代码漏洞的主要原因是管理员操作不规范.在使用SVN管理本地代码过程中,会自动生成一个名为.svn的隐藏文件夹,其中包含重要的源代码信息.但一些网站管理员在发布代码时,不愿意使用‘导出’功能 ...
随机推荐
- 引用、引用和术语定义<abbr><acronym><address><bdo><blockquote><q><cite><dfn>
<abbr>-缩写 <acronym>-首字母缩写 <address>-地址 <bdo>-文字方向 <blockquote>-长的引用 & ...
- PHP 数据安全问题总结
总结:关键的判断,比较尽量使用=== 类型和值都比较的恒等比较 1.if($var) $var 遵循boolean 转换. 当转换为 boolean 时,以下值被认为是 FALSE: 布尔值 FALS ...
- 在windows 10中使用pip安装psutil 4.3.0
环境版本:windows + python 2.7/3.5共存 使用的python是使用exe安装的,默认已经有pip并确保PATH设置正确,默认安装psutil 4.3.0 1:使用cmd安装2.7 ...
- spark发行版笔记9
感谢DT大数据梦工厂支持提供技术支持,DT大数据梦工厂专注于Spark发行版定制. 本期概览: 1 Receiver生命全周期 首先,我们找到数据来源的入口,入口如下 Receiver的设计是极其巧妙 ...
- socketserver 分块记录
网络编程 Socket(TCP,IP)套接字 服务端 运行起来, 客户端 客户端 客户端 客户端 服务端: import socket sk = socket.socket() #绑定端口号 sk.b ...
- FPGA作为从机与STM32进行SPI协议通信---Verilog实现 [转]
一.SPI协议简要介绍 SPI,是英语Serial Peripheral Interface的缩写,顾名思义就是串行外围设备接口.SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用 ...
- STM32外部中断初理解
PA0,PB0...PG0--->EXTI0 PA1,PB1...PG1--->EXTI1 ....... PA15,PB15...PG15--->EXTI15 以上为GPIO和中断 ...
- 《Pro Express.js》学习笔记——Express服务启动常规七步
Express服务启动常规七步 1. 引用模块 var express=require('express'), compression=require('compression'), bo ...
- Zend_Frameowrk中进行多语言国际化的相关的配置和使用
在使用Zend_Framework建立网站,若网站在以后的使用中面向国际,这时就需要实现网站的多语言国际化问题.使用Zend_Framework开发的网站需要进行多语言的开发时,就需要用到了Zend_ ...
- Eclipse中的一些快捷键的使用
Eclipse是一款强大的编程工具,在使用的过程中,若能够有效的使用其快捷键,效率会得到很大的提升,下面是一些常用的eclipse快捷键,可谓是键键精彩. 1.成单词:Alt+/ 2 重构之重命名:S ...