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