标签: patch

如何在生产服务器上的Web项目上应用补丁?

我们最近有一个项目,我们在客户端的服务器上发布了一个大型Web应用程序的测试版.我们的客户要求我们在进行错误修复时,我们尝试以同样的方式进行修复.通常,在我们的原型服务器上构建应用程序更容易,因为我只需要发出简单的'svn up'命令,这需要一秒钟.

但在生产环境中,我们没有任何版本控制工具.是否可以自动完成修补工作,以便我们不需要登录到ftp并逐个上传每个文件?

以这种方式工作非常困难.因为我遇到了这个问题,所以你肯定有些人已经解决了这个问题.请分享您的解决方案.

期待您的回复......非常感谢您阅读.

version-control patch

5
推荐指数
1
解决办法
401
查看次数

如何动态修补正在运行的ASP.NET应用程序?

有没有人有一个如何修补正在运行的asp.net应用程序的示例?我想象的场景是应用程序可以查找已知的中央服务器以获取更新版本.将较新的文件下载到临时位置,然后自行修补.

我可以看到的问题是文件监视器将获取任何文件更改并重新加载应用程序域,这将停止当前的修补过程.我认为每个写入的文件都会触发应用程序的重新加载.

asp.net patch

5
推荐指数
1
解决办法
1847
查看次数

为什么在重放现有提交时git pull --rebase会失败?

我不明白这一点:当我'git pull --rebase remote branch'时,它会将我的HEAD恢复为他们的共享根,然后开始重放在此期间发生的所有远程提交.为什么这些提交有时会失败?它们是干净的工作空间干净的提交?这几乎不是变相的重点吗?

git merge patch pull rebase

5
推荐指数
1
解决办法
620
查看次数

修补Java软件

我正在尝试创建一个过程来修补我们当前的Java应用程序,因此用户只需要下载差异而不是整个应用程序.因为大多数jar文件很小,所以我认为我不需要像二进制差异一样低级别,所以替换整个jar文件并不是那么大(最多可能是5MB).

是否有标准工具来确定哪些文件已更改并为其生成补丁?我见过像xdelta和vpatch这样的工具,但我认为它们在二进制级别工作.

我基本上想弄明白 - 需要添加,替换或删除哪些文件.当我运行补丁时,它将检查软件的当前版本(来自注册表设置)并确保补丁用于正确的版本.如果是,它将进行必要的更改.这听起来并不像我自己太难实现,但我想知道其他人是否已经这样做了.我使用NSIS作为我的安装程序,如果这有任何区别.

谢谢,

杰夫

java patch versions

5
推荐指数
1
解决办法
4540
查看次数

使用Mock修补函数

我有一个测试套件(使用nose,而不是unittest),我想修补一个函数,为测试类中的每个测试返回一个特定的值序列.我使用简化示例进行的第一次尝试是:

@patch('time.clock', MagicMock(side_effects=[1, 2]))
class Tests:
    def test_1(self):
        assert time.clock() == 1
        assert time.clock() == 2

    def test_2(self):
        assert time.clock() == 1
        assert time.clock() == 2
Run Code Online (Sandbox Code Playgroud)

但是,MagicMock实例仅创建一次,因此当副作用用尽时,第二次测试失败.我可以单独修补每个测试方法,但我真的不想在所有测试方法上复制修补程序装饰器(测试中的测试比这个例子多得多!)我能做的另一种方法是创建补丁像这样的设置代码:

class Tests:
    def setup(self):
        self.old_clock = time.clock
        time.clock = MagicMock(side_effects=[1, 2])

    def teardown(self):
        time.clock = self.old_clock

    def test_1(self):
        assert time.clock() == 1
        assert time.clock() == 2

    def test_2(self):
        assert time.clock() == 1
        assert time.clock() == 2
Run Code Online (Sandbox Code Playgroud)

但保存和恢复原始函数定义似乎是Mock应该能够自动执行的操作.有没有另外一种方法可以解决这个问题?或者我的最后一个例子是这样做的最佳方式?

python unit-testing patch mocking

5
推荐指数
1
解决办法
1012
查看次数

diff命令'diff -b'和'git diff'之间的区别

我一直都diff -b在制作补丁时会做补丁git repo

  1. 两者之间有什么区别,git diff / git format-patch内部是否也使用linux / unix diff命令?(我知道之间的区别git diff/git format-patch
  2. 此外,与的修补方式patch -p1有何不同git apply。我可以应用由diff命令(diff -b)生成的补丁并使用进行应用git diff吗?
  3. 与之一起使用git diff/apply时是一种好习惯git吗?我一直在使用diff/patch,从未遇到任何问题。

如果我对上述事情的知识不足,请指正。

git diff patch git-diff git-apply

5
推荐指数
1
解决办法
1813
查看次数

查找补丁程序适用的第一个或最后一个提交

假设补丁是从过去的特定提交创建的,并且不再适用于HEAD。

我如何找到HEAD历史记录中的第一个提交或更好的最后一个提交,在此补丁中加上“ git apply”?也许有git bisect吗?但是哪个命令会告诉我是否有补丁?

理想情况下,除非有冲突,否则我想返回到该提交,应用补丁,然后基于原始HEAD或与之合并,然后再次进行比较以创建新补丁。在此之后,我想回到原始的HEAD,以便可以继续安装更多补丁。

背景:有许多补丁需要重新发布...(是的,在某些生态系统中,补丁仍然很重要。)

git patch git-bisect git-patch git-apply

5
推荐指数
1
解决办法
214
查看次数

Sitecore补丁 - 添加网站

我正在尝试在站点列表上添加站点名称,以便在publish:end:remote事件中清除HTML缓存.

<event name="publish:end:remote">
  <handler type="Sitecore.Publishing.HtmlCacheClearer, Sitecore.Kernel" method="ClearCache">
    <sites hint="list">
      <site patch:after="*[@site]">mysite</site>
    </sites>
  </handler>
  <handler type="Sitecore.Publishing.RenderingParametersCacheClearer, Sitecore.Kernel" method="ClearCache"/>
</event>
Run Code Online (Sandbox Code Playgroud)

但是它没有按预期工作.我做谷歌搜索,并没有找到任何关于如何在元素之前或之后进行修补的内容.大多数示例都在/属性等之前.

谢谢.

patch sitecore sitecore8.1

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

Asp.Net Web Api http修补程序问题

我们的Web API中有HTTP补丁程序,但是我们无法识别使用补丁程序清除了哪些字段。

说,我们有学生班。

public class Student
{
 public int? Id { get; set; }
 public string FirstName { get; set; }
 public string LastName { get; set; }
 public string Email { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

如果要求用户使用以下Json进行补丁,

{
 "FirstName": "Test First Name"
 "Email": null
}
Run Code Online (Sandbox Code Playgroud)

我们已经使用FromBody从Json创建以下对象,但是在Json中如何识别该字段设置为null。

{
 "Id": null,
 "FirstName": "Test First Name",
 "LastName": null,
 "Email": null
}
Run Code Online (Sandbox Code Playgroud)

有什么方法可以在不添加任何新字段的情况下实现这一目标?

json patch http asp.net-web-api

5
推荐指数
0
解决办法
108
查看次数

Python mock.patch装饰器影响同一测试套件中的其他单元测试

我为main_function编写了一个单元测试,并断言它使用类的实例调用其中的函数get_things,并使用patch作为参数进行模拟:

@patch("get_something")
@patch("MyClass.__new__")
def test(self, mock_my_class_instance, mock_get_something):
    # Given
    dummy_my_class_instance = MagicMock()
    mock_my_class_instance.return_value = dummy_my_class_instance

    dummy_my_class_instance.get_things.return_value = {}

    # When
    main_function(parameter)

    # Then
    dummy_my_class_instance.get_things.assert_called_once_with(parameter["key1"], parameter["key2"])
    mock_get_something.assert_called_once_with(dummy_my_class_instance)
Run Code Online (Sandbox Code Playgroud)

这是主要功能:

def main_function(parameter):
    properties = get_properties(parameter)

    my_class_instance = MyClass()

    list_of_things = my_class_instance.get_things(properties["key-1"], properties["key-2"])
    an_object = get_something(my_class_instance)

    return other_function(list_of_things, an_object)
Run Code Online (Sandbox Code Playgroud)

它单独传递,但是当与其他修补MyClass.get_things()的测试一起运行时,它会失败.这是消息:

Unhandled exception occurred::'NoneType' object has no attribute 'client'
Run Code Online (Sandbox Code Playgroud)

似乎修补程序装饰器相互影响.

我试图在测试函数中创建模拟作为变量而不是装饰器,但问题仍然存在.我也尝试创建一个tearDown()来停止补丁,但它似乎不起作用.

在模拟类实例时,有没有办法隔离补丁或成功丢弃它们?

python patch mocking python-decorators python-unittest

5
推荐指数
1
解决办法
409
查看次数