zoukankan      html  css  js  c++  java
  • 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 "完成**功能"
    

    终于,收工!

  • 相关阅读:
    input 标签取消readOnly属性
    python selenium 跑脚本的时候按钮无法点击的解决办法
    Python Selenium 调用IE浏览器失败Unexpected error launching Internet Explorer解决方法
    转载--Python random模块(获取随机数)常用方法和使用例子
    转载--python selenium实现文件、图片上传
    ieDriver启动IE浏览器显示This is the initial start page for the WebDriver server的解决办法
    自动化测试用例设计学习心得总结
    关于selene安装插件ide不能识别插件的问题解决办法
    cmd 启动mysql
    最大子序列
  • 原文地址:https://www.cnblogs.com/dormscript/p/5740751.html
Copyright © 2011-2022 走看看