标签: patch

从2个文件夹的diff创建补丁文件

我对一个开源项目做了一些更改,没有花时间创建适当的补丁文件.

现在,项目的维护者发布了一个新版本,在新的和编辑过的文件中,有一堆重命名的文件.

什么是将我的更改应用到新版本的最佳方式?
我是diff/patch使用的新手,如果我能用git完成它,那就更好了.

git diff patch

38
推荐指数
2
解决办法
4万
查看次数

git用diff创建补丁

我试过了

git diff 13.1_dev sale_edit > patch.diff
Run Code Online (Sandbox Code Playgroud)

然后我尝试git apply patch.diff在另一个分支,但我得到补丁不适用.如何从差异中创建补丁文件,我可以使用git apply?

收到的错误:

$ git apply --ignore-space-change --ignore-whitespace diff.diff 
diff.diff:9: trailing whitespace.

diff.diff:10: trailing whitespace.
    function set_change_sale_date() 
diff.diff:12: space before tab in indent.
      $this->sale_lib->set_change_sale_date($this->input->post('change_sale_date'));
diff.diff:14: trailing whitespace.

diff.diff:15: trailing whitespace.
    function set_change_sale_date_enable() 
warning: application/controllers/sales.php has type 100755, expected 100644
error: patch failed: application/controllers/sales.php:520
error: application/controllers/sales.php: patch does not apply
warning: application/language/english/sales_lang.php has type 100755, expected 100644
error: patch failed: application/language/english/sales_lang.php:134
error: application/language/english/sales_lang.php: patch does not apply
warning: application/libraries/Sale_lib.php has …
Run Code Online (Sandbox Code Playgroud)

git patch

38
推荐指数
2
解决办法
5万
查看次数

适用于Linux的可视补丁工具

我有一个文件和一个补丁.我想在视觉上应用补丁,看看补丁提出的更改如何在上下文中查看,进行一些更正,并保存生成的文件.

什么工具可以做到这一点?

视觉差异工具(即meld,diffuse,diffmerge)都不能满足我的要求:它们不能使用补丁,它们只是合并整个文件.

linux diff user-interface patch

37
推荐指数
3
解决办法
2万
查看次数

将svn补丁应用于git存储库

好吧,我已经尝试了所有可以在stackoverflow上找到的答案,但显然似乎没有人能够解决我的问题.我想将SVN制作的补丁应用到git存储库.显然,最简单的方法是使用'git apply',但这似乎不起作用.

$ git apply --ignore-space-change --ignore-whitespace < xxx_parser.patch


<stdin>:10: trailing whitespace.
        FORCE_LA_CHECK = false; stdin:23: trailing whitespace.

<stdin>:79: trailing whitespace
. 
. 
. 
. 
error: pmd/grammar/JspParser.jjt: No such file or directory 
error: patch failed: pmd/pom.xml:251 
error: pmd/pom.xml: patch does not apply
Run Code Online (Sandbox Code Playgroud)

这是xxx_parser.patch的内容:

 $ head xxx_parser.patch Index: etc/grammar/JspParser.jjt
 --- etc/grammar/JspParser.jjt   (revision 7704)
 +++ etc/grammar/JspParser.jjt   (working copy)
Run Code Online (Sandbox Code Playgroud)

现在为什么它抱怨它找不到文件pmd/grammar/JspParser.jjt?

补丁中的路径指向正确的目录.

svn git patch

37
推荐指数
2
解决办法
2万
查看次数

修补程序与修补程序与维护版本与Service Pack对比

如果您介于版本1和版本2之间,那么您如何维护软件?

从我的观点来看,术语补丁,修补程序,维护版本,Service Pack等都是模糊的,根据您的联系人而定义不同.

您认为发布之间的增量维护工作是什么?

maintenance servicepacks patch hotfix

35
推荐指数
3
解决办法
6万
查看次数

Python模拟补丁在另一个函数内的一个函数

def f1():
    return 10, True

def f2():
    num, stat = f1()
    return 2*num, stat
Run Code Online (Sandbox Code Playgroud)

我如何使用python的模拟库来修补f1()和返回自定义结果,以便我可以测试f2()

编辑: 我的测试有问题吗?这似乎不起作用,所有测试都失败了AssertionError

from foo.bar import f2
from mock import patch

class MyTest(TestCase):

    def test_f2_1(self):
        with patch('project.module.f1') as some_func:
            some_func.return_value = (20, False)
            num, stat = f2()
            self.assertEqual((num, stat), (40, False))

   @patch('project.module.f1')
   def test_f2_2(self, some_func):
       some_func.return_value = (20, False)
       num, stat = f2()
       self.assertEqual((num, stat), (40, False))
Run Code Online (Sandbox Code Playgroud)

python testing unit-testing patch mocking

35
推荐指数
2
解决办法
4万
查看次数

如何/在哪里找到Linux内核错误修复?

我试图找到需要在Linux内核中修复的错误,但我不知道在哪里看.我在Youtube上观看了Greg Kroah-Hartman的视频"如何提交你的第一个Linux内核补丁",但他并没有真正提到在哪里找到需要修复的漏洞.

在视频中,他简要提到了邮件列表并在内核代码中查看了TODO.有谁知道我可以加入邮件列表?另外,我找到了内核Bugzilla,但根据Kernel.org,只列出了2.6的bug.我实际上注册了,但是我只是发现了一个我感兴趣的错误并尝试修复它,如果它还没有在最新的内核上修复?它是否已被分配给某人是否重要?

如果我能找到一个列出所有现有错误列表的站点,那么我会找到一个低优先级和低严重性的东西.我真的在寻找一个相对容易修复的bug,这样我就可以学习绳索并按照自己的方式工作.

任何建议,输入,阅读网站等任何人都将不胜感激.感谢您阅读/回答.=)

linux kernel patch

35
推荐指数
1
解决办法
1万
查看次数

如何可视化或格式化diff/patch文件?

我有一个补丁文件(统一差异),像输出svn diff,git diffdiff -u ....我想回顾一下,但统一的差异格式 - 特别是有很多文件和变化 - 对我来说很难.

如何从补丁文件中获取格式良好的差异视图?我没有文件本身,只有diff,所以我不能使用所有常规的diff工具.

到目前为止,我最好的两个策略是:

  1. 在gvim中加载diff并获得一些语法突出显示
  2. 将差异粘贴到#!diff-formatted部分中的Trac wiki中,然后单击"预览" - 这将创建一个非常棒的差异视图:
{{{
#!diff
<unified diff here>
}}}

有桌面工具可以做到这一点吗?有没有办法说服kdiff3/diffmerge/p4merge /等可视化补丁文件?复制Trac可视化的东西也会很棒.

编辑:Windows支持的奖励积分,最好是安装程序或无痛安装.

formatting diff visualization patch

34
推荐指数
3
解决办法
3万
查看次数

永久性地反转补丁文件

有时,无论出于何种原因,我都必须生成错误方向的补丁文件(在Linux下).我知道我可以通过-R在应用它时使用开关来解决这个问题patch,但是如果有一种永久性地反转补丁文件的方法会很好.是否有可以执行此操作的实用程序,或者例如可以保证有效的正则表达式?

UPDATE

Lie Ryan 提出了一个巧妙的方法.但是,它需要访问原始源文件.所以我想我应该更新我的问题,说明我更多的是在一种方法实现这一点,只给出补丁文件本身.

linux diff patch

34
推荐指数
3
解决办法
2万
查看次数

git-apply神秘失败,我该如何解决/修复?

我目前正在尝试对(github)存储库的PR进行代码样式检查,并且我希望向提交者提供补丁,以便他们可以轻松地修复代码样式.为此,我正在拉下他们的PR,在它上面运行我们的解密脚本以修复任何样式错误,并且想要创建一个可以轻松应用的.patch文件.但是,它一直打破一些文件.

我这样做(git版本1.7.10.4 with core.autocrlf=input,core.filemode=false):

$ git checkout pr-branch
$ git log -1 (shows: commit dbb8d3f)
$ git status (nothing to commit, working directory clean)
$ <run the code styler script, which modifies some files>
$ git diff > ../style.patch (so the patch file lands outside the repo)
$ git reset --hard HEAD (to simulate the situation at the submitter's end)
$ git log -1 (shows: commit dbb8d3f)
$ git status (nothing to commit, working directory clean, so …
Run Code Online (Sandbox Code Playgroud)

git patch

33
推荐指数
2
解决办法
5万
查看次数