我已经编写了测试用例,在测试用例执行过程中将创建更改,并通过合并/放弃最终清除更改。但是有时在合并/放弃清理过程之间会引起一些例外。
我们可以考虑删除测试过程中创建的更改,而不是仅合并/放弃这些更改吗?
class TestChangeMerge(object):
@pytest.fixture(autouse=True)
def setup(self, conf, git, gerrit):
self.git = git(config)
self.gerrit = gerrit(config)
def test_change_merge(self):
log.info("STEP 1 : git-clone")
self.git.clone()
log.info("STEP 2 : Create commit and push new change")
self.git.push_change()
log.info("STEP 3 : Checking results")
assert (self.gerrit.change_status(self.git.change_id))
def teardown(self):
self.git.cleanup()
self.gerrit.cleanup()
#Here we have stated cleanup, used ssh command 'gerrit review --abandon', in case failed on abandon then what is alternate way to cleanup.
答案 0 :(得分:0)
您必须知道要返回到的提交的提交ID。然后,您可以进行以下操作:
git reset --hard commit-id
或者,最佳情况下,您已将标签放在要返回的位置。
git reset --hard tagname
如果您已经推送了不需要的提交(我假设这是'self.git.push_change()'的调用),那么您将不得不在之后强制推送:
git push --force
但要绝对确定,在此期间没有其他人将其推送到存储库中-更改也将丢失。 强制推送必须与使用回购协议的每个人保持同步!!!
答案 1 :(得分:0)
是的,您可以使用REST删除更改。
查看如何使用“删除更改”端点here。
您需要向要删除更改的用户授予Delete Own Changes或Delete Changes权限。
查看有关Gerrit REST API here的更多信息。