Можем ли мы удалить изменения (изменения git), созданные во время выполнения теста, а не только объединить / отказаться от них? - PullRequest
0 голосов
/ 03 мая 2019

Я написал тестовые случаи, во время выполнения теста будут созданы изменения, которые будут очищены путем слияния / отмены в конце.Но иногда возникают некоторые исключения между процессом слияния / отмены при очистке.

Можем ли мы придумать способ удаления изменений, созданных в ходе теста, а не только их слияние / отмена?

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 голосов
/ 03 мая 2019

Да, вы можете удалить изменения, используя REST.

Узнайте, как использовать конечную точку «Удалить изменение» здесь .

Вам необходимо предоставить Удалить собственнуюИзменения или Разрешение на удаление изменений для пользователя, который будет удалять изменения.

Подробнее об API Gerrit REST здесь .

0 голосов
/ 03 мая 2019

Вы должны знать идентификатор коммита коммита, на который вы хотите вернуться. Тогда вы можете сделать:

git reset --hard commit-id

Или, оптимально, вы поместили тег туда, куда хотите вернуться.

git reset --hard tagname

Если вы уже выдвинули свой нежелательный коммит (я предполагаю, что это вызов 'self.git.push_change ()'), вам придется принудительно нажимать потом:

git push --force

Но сделайте абсолютно уверенным , что в это время никто больше не подталкивал к репо - что изменения также будут потеряны. Силовые толчки должны быть синхронизированы с каждым человеком, который использует репо !!!

...