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的更多相关文章

  1. git diff patch方法

    UNIX世界的软件开发大多都是协作式的,因此,Patch(补丁)是一个相当重要的东西,因为几乎所有的大型UNIX项目的普通贡献者,都是通过 Patch来提交代码的.作为最重要的开源项目之一,Linux ...

  2. Linux diff patch

    /***************************************************************************** * Linux diff patch * ...

  3. 关于git的打patch的功能

    UNIX世界的软件开发大多都是协作式的,因此,Patch(补丁)是一个相当重要的东西,因为几乎所有的大型UNIX项目的普通贡献者,都是通过 Patch来提交代码的.作为最重要的开源项目之一,Linux ...

  4. Linux之旅(1): diff, patch和quilt (下)

    Linux之旅(1): diff, patch和quilt (下) 2 quilt 我们自己的项目能够用cvs或svn管理所有代码.但有时我们要使用其它开发人员维护的项目.我们须要改动一些文件,但又不 ...

  5. Linux游(1): diff, patch和quilt (下一个)

    Linux游(1): diff, patch和quilt (下一个) 2 quilt 我们自己的项目可以用cvs或svn管理所有代码.但有时我们要使用其它开发人员维护的项目.我们须要改动一些文件.但又 ...

  6. 如何用git命令生成Patch和打Patch

    在程序员的日常开发与合作过程中,对于code的生成patch和打patch(应用patch)成为经常需要做的事情.什么是patch?简单来讲,patch中存储的是你对代码的修改,生成patch就是记录 ...

  7. 十分钟掌握diff&patch用法

    作为程序员,了解diff&patch命令是非常必要的.比如说我们发现某个项目有bug代码,而自己又没有svn的提交权限,那么此时最合适的解决方法就是用diff命令做一个补丁发给项目成员.项目成 ...

  8. 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 ...

  9. SVN/GIT源代码泄露

    造成SVN源代码漏洞的主要原因是管理员操作不规范.在使用SVN管理本地代码过程中,会自动生成一个名为.svn的隐藏文件夹,其中包含重要的源代码信息.但一些网站管理员在发布代码时,不愿意使用‘导出’功能 ...

随机推荐

  1. 20169212《Linux内核原理与分析》第五周作业

    关于linux内核源码 两个很关键的目录,一个是arch(architecture),支持不同cpu体系架构的源代码,其中最重要的就是x86(一般把x86留下,其他的目录删掉),另一个是init(其中 ...

  2. Spring 相关jar包详细介绍

    文章转自:http://blog.csdn.net/farawayhome/article/details/6623946 aspectj目录下是在Spring框架下使用aspectj的源代码和测试程 ...

  3. oracle 存储过程访问其他用户的表

    用户user2想在存储过程中查询用户User1的表table1, 在PL/SQL中用user1登陆,执行以下语句即可: grant select on User1.table1 to user2;

  4. 【Linux】【通信】1.ping不通

    关于为什么ping不通有很多种原因,但直接的表象就网络之间没有成功进行通讯: 在构建虚拟机和win之间的交互时,主要使用了3种网络模式: 桥接bridge VMnet0 主机host     VMne ...

  5. 苹果公布WWDC2016时间 并做了个程序员情怀网页

    新浪手机讯 4月19日上午消息,苹果公司今日正式确定2016年全球开发者大会(WWDC)开幕时间:6月13-17日,并做了个非常有意思的代码风格页面. 网友戏称这个页面只有程序员们才能看懂,它的首页是 ...

  6. 【转】javascript打印设置

    页面中的代码:<OBJECT id="WebBrowser1" height="0" width="0"        classid ...

  7. Codeforces Round #383 (Div. 1)

    A: 题目大意:给出一个有向图(n<=100),每个点的出度都为1,求最小的t,使得任意两点x,y,如果x走t步后能到y,那么y走t步后到x. 题解: 首先每个点应该都在一个环上,否则无解. 对 ...

  8. Spark机器学习读书笔记-CH04

    [root@demo1 ch04]# spark-shell --master yarn --jars /root/studio/jblas-1.2.3.jar scala> val rawDa ...

  9. C++虚函数的陷阱

    首先看一段代码: class B { public: ) { std::cout << "base fun called, " << i; }; }; cl ...

  10. 常用HTML标签元素结合及简介

    常用HTML标签元素结合及简介 <html></html> 创建一个HTML文档<head></head> 设置文档标题和其它在网页中不显示的信息< ...