Mercurial > hg-stable
changeset 10772:1e819576e926 stable
push: refactor and optimize prepush
author | Sune Foldager <cryo@cyanite.org> |
---|---|
date | Fri, 26 Mar 2010 17:02:49 +0100 |
parents | 01f097c4ae66 |
children | bd36e5c0ccb1 c52057614c72 bdc3256a318e |
files | mercurial/localrepo.py |
diffstat | 1 files changed, 5 insertions(+), 13 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/localrepo.py Fri Mar 26 17:02:36 2010 +0100 +++ b/mercurial/localrepo.py Fri Mar 26 17:02:49 2010 +0100 @@ -1503,30 +1503,22 @@ update, updated_heads = self.findoutgoing(remote, common, remote_heads) msng_cl, bases, heads = self.changelog.nodesbetween(update, revs) - def checkbranch(lheads, rheads, updatelb, branchname=None): + def checkbranch(lheads, rheads, branchname=None): ''' check whether there are more local heads than remote heads on a specific branch. lheads: local branch heads rheads: remote branch heads - updatelb: outgoing local branch bases ''' warn = 0 - if not revs and len(lheads) > len(rheads): + if len(lheads) > len(rheads): warn = 1 else: - # add local heads involved in the push - updatelheads = [self.changelog.heads(x, lheads) - for x in updatelb] - newheads = set(sum(updatelheads, [])) & set(lheads) - - if not newheads: - return True - # add heads we don't have or that are not involved in the push + newheads = set(lheads) for r in rheads: if r in self.changelog.nodemap: desc = self.changelog.heads(r, heads) @@ -1590,10 +1582,10 @@ for branch, lheads in localbrheads.iteritems(): if branch in remotebrheads: rheads = remotebrheads[branch] - if not checkbranch(lheads, rheads, update, branch): + if not checkbranch(lheads, rheads, branch): return None, 0 else: - if not checkbranch(heads, remote_heads, update): + if not checkbranch(heads, remote_heads): return None, 0 if inc: