zuul/zuul/merger
Tobias Henkel f30ec067e6 Don't try to delete non-existing local refs
If a remote ref is deleted the merger first deletes the local ref and
then the remote ref. In case the merger was stopped between these two
steps all further reset actions on this repo fail with [1]. This can
be fixed by only deleting existing heads.

[1] Trace:
2018-04-24 11:43:16,401 ERROR zuul.Merger: Unable to update github/org/project
Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/zuul/merger/merger.py", line 446, in updateRepo
    repo.reset()
  File "/usr/lib/python3.6/site-packages/zuul/merger/merger.py", line 195, in reset
    repo.delete_head(ref.remote_head, force=True)
  File "/usr/lib/python3.6/site-packages/git/repo/base.py", line 372, in delete_head
    return Head.delete(self, *heads, **kwargs)
  File "/usr/lib/python3.6/site-packages/git/refs/head.py", line 127, in delete
    repo.git.branch(flag, *heads)
  File "/usr/lib/python3.6/site-packages/git/cmd.py", line 550, in <lambda>
    return lambda *args, **kwargs: self._call_process(name, *args, **kwargs)
  File "/usr/lib/python3.6/site-packages/git/cmd.py", line 1009, in _call_process
    return self.execute(call, **exec_kwargs)
  File "/usr/lib/python3.6/site-packages/git/cmd.py", line 820, in execute
    raise GitCommandError(command, status, stderr_value, stdout_value)
git.exc.GitCommandError: Cmd('git') failed due to: exit code(1)
  cmdline: git branch -D somebranch
  stderr: 'error: branch 'somebranch' not found.'

Change-Id: Ifbfa084ba35d309c2a44fa447e3af1e542b5fdba
2018-04-24 19:38:54 +02:00
..
__init__.py Split the merger into a separate process 2014-02-17 11:47:15 -08:00
client.py Git driver 2017-12-15 14:32:40 +01:00
merger.py Don't try to delete non-existing local refs 2018-04-24 19:38:54 +02:00
server.py Git driver 2017-12-15 14:32:40 +01:00