我们可以删除在测试执行过程中创建的更改(git更改),而不是仅合并/放弃它们吗?

时间:2019-05-03 05:26:19

标签: git gerrit

我已经编写了测试用例,在测试用例执行过程中将创建更改,并通过合并/放弃最终清除更改。但是有时在合并/放弃清理过程之间会引起一些例外。

我们可以考虑删除测试过程中创建的更改,而不是仅合并/放弃这些更改吗?

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.

2 个答案:

答案 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 ChangesDelete Changes权限。

查看有关Gerrit REST API here的更多信息。