Merger: support for pruning remotes

The new merger.prune() method let us remove stall references in the
current directory.  That is probably of no use for Zuul merger itself
but definitely helpful for a client side cloner I am polishing up.

Change-Id: I29c780a5f6cd7717b2bd5fb3ee64a1c19b490faa
This commit is contained in:
Antoine Musso 2014-05-05 17:28:27 +02:00
parent 9932eb4ae4
commit 965233a6c7
1 changed files with 8 additions and 0 deletions

View File

@ -82,6 +82,14 @@ class Repo(object):
repo.head.reset(index=True, working_tree=True)
repo.git.clean('-x', '-f', '-d')
def prune(self):
repo = self.createRepoObject()
origin = repo.remotes.origin
stale_refs = origin.stale_refs
if stale_refs:
self.log.debug("Pruning stale refs: %s", stale_refs)
git.refs.RemoteReference.delete(repo, *stale_refs)
def getBranchHead(self, branch):
repo = self.createRepoObject()
branch_head = repo.heads[branch]