我正在学习如何使用 git,并且想关注一个项目。所以我克隆了该项目,但我没有最新的代码。
如果我想向该代码添加补丁(或更多),那么最好的方法是什么(并运行make和make install)并且仍然能够git pull从主存储库而不产生冲突?
我尝试过创建一个分支,但我不确定这是否是正确的方法。
我只是希望能够跟上 master 中的新代码,但能够在推送新版本时应用我自己的补丁。
我想知道在哪里可以学习如何做到这一点,但我不知道该用谷歌搜索什么。
我在设置单元测试时遇到很多困难。我一直在使用补丁,但它的行为并不完全符合预期。
我的测试函数顶部有一个装饰器:
@mock.patch('WarningFactory.WarningAPIUpdate')
@mock.patch('WarningFactory.SomethingElse')
def test_send_tc_update(self, other_mock, api_mock):
但是,当我尝试做出以下断言时,在我的函数结束时:
api_mock.send_warning.assert_called_with('IDQ20026', 'IDQ20026')
它失败
我知道那应该通过,因为我跑了
print api_mock.mock_calls
给予
[call(u'test_api'),
call().send_warning('IDQ20026', 'IDQ20026'),
call().send_warning('IDQ24500', 'IDQ24500')]
我可以清楚地看到使用正确值调用的 send_warning 方法,那么为什么我的断言失败了?
我必须对我的 repo 应用补丁并且正在运行
git apply --directory=$PWD xxxxx.patch
Run Code Online (Sandbox Code Playgroud)
由于我不会深入的原因,我不能git am在这个实例中使用,我需要使用目录标志。
git 告诉我:
$> git apply --directory=$PWD xxxxx.patch
code1/xxxxx.patch:337: trailing whitespace.
< one partial line of code >
warning: 1 line adds whitespace errors.
Run Code Online (Sandbox Code Playgroud)
我已经读到空白警告并不严重,不应阻止 git 应用补丁。但是,无论什么原因,git 都没有应用补丁。存储库中的当前文件均未更改。知道该怎么做吗?
根据https://kubernetes.io/docs/tutorials/stateful-application/basic-stateful-set/#scaling-a-statefulset,请问如何实现零宕机滚动更新?我想这是最低要求:
(1) .spec.updateStrategy 设置为 RollingUpdate
(2) .spec.podManagementPolicy 设置为 OrderedReady
(3) .spec.replicas 设置为 2
那正确吗?我假设当更新以相反的顺序发生时,所有到 StatefulSet 的流量都由序号较低的 pod 提供服务?
patch downtime live-update kubernetes kubernetes-statefulset
我有一个与补丁操作中的增量相关的问题。我想拦截该对象并更新属性
Bacteria.nameShort = HTMLExtractHelper.RemoveUnwantedTags(Bacteria.name);
在每个更新/补丁上。
我可以在 put 和 post 动词中轻松完成这些操作,但 Delta 对象似乎阻止我更新补丁中的属性。
public async Task<IActionResult> Patch([FromODataUri] int key, [FromBody] Delta<Bacteria> Bacteria)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
//var entity = await _db.Bacterias.FindAsync(key);
var entity = _db.Bacterias.FirstOrDefault(i => i.bacteriaID == key);
if (entity == null)
{
return NotFound();
}
Bacteria.Patch(entity);
try
{
await _db.SaveChangesAsync();
}
catch (DbUpdateConcurrencyException)
{
if (!BacteriaExists(key))
{
return NotFound();
}
else
{
throw;
}
}
return Updated(entity);
}
Run Code Online (Sandbox Code Playgroud)
如何实现更新控制器补丁功能中的属性?
所以我正在学习的乐趣git add -p。我曾经使用 Sourcetree 或类似的 GUI 工具来检查更改,作为 的一部分git add,但现在我在命令行上使用它变得更好。
但是,令我感到沮丧的是,我无法在同一命令中添加未跟踪的文件。如果有像这样的选项,我希望git add -p --include-untracked它可以像其他部分一样将它们视为补丁。
有没有更好的方法可以通过单个命令来完成此操作?
我想装饰我的测试来修补特定的功能。我对将模拟对象作为函数的参数不感兴趣。在此示例中,我希望能够省略mock_my_foo参数:
def my_foo(self):
print "My side_effect"
class SampleTest(TestCase):
@patch('some_module.foo', side_effect=my_foo)
def test_something(self, mock_my_foo):
pass
Run Code Online (Sandbox Code Playgroud)
我正在使用 python 2.7
我经常使用git add -p somefile交互式暂存给定文件中的部分。但是,如果文件有更复杂的更改,则默认差异会出错,交互式补丁命令提供的大块也会出错。
该git diff命令有许多选项可以改进或自定义 diff 输出,包括非常有用的--anchored=<text>,但是有什么方法可以从中获得更好的大块头git add -p吗?
我不知道 PATCH 和 PUT 方法之间的确切区别。谁能告诉我什么时候应该使用这种方法并举出适当的例子。
我有一个测试功能可以修补一些东西。一旦我达到了超过 2 或 3 个补丁,该功能就开始看起来很糟糕
def test_bla():
with patch(...):
with patch(...):
with patch(...):
# test
Run Code Online (Sandbox Code Playgroud)
所以我尝试开始使用装饰器。这是我的示例测试,当我引入补丁装饰器时,该测试会中断
import pytest
from unittest.mock import patch
class Example:
def _run(self, x):
return x
def run(self, x):
return self._run(x) + 1
@pytest.mark.parametrize('x', [1])
def test_example(x):
assert Example().run(x) == 2
@pytest.mark.parametrize('x', [1])
@patch('Example._run', return_value=0)
def test_example_failure(x):
with pytest.raises(AssertionError):
assert Example().run(x) == 2
Run Code Online (Sandbox Code Playgroud)
这是我得到的错误:
platform linux -- Python 3.6.13, pytest-6.2.1, py-1.10.0, pluggy-0.13.1
rootdir: ..., configfile: pytest.ini
plugins: metadata-1.11.0
collected 0 items / 1 error
==================================================================================================== ERRORS ==================================================================================================== …Run Code Online (Sandbox Code Playgroud) patch ×10
git ×4
python ×2
.net-core ×1
diff ×1
downtime ×1
git-add ×1
interactive ×1
kubernetes ×1
laravel ×1
live-update ×1
mocking ×1
odata ×1
put ×1
pytest ×1
python-2.6 ×1
python-2.7 ×1
unit-testing ×1