diff -r 3f30190781a3 -r 24ed7a541f23 mercurial/localrepo.py --- a/mercurial/localrepo.py Tue Apr 06 08:54:18 2010 -0500 +++ b/mercurial/localrepo.py Fri Apr 09 10:35:53 2010 +0200 @@ -1517,8 +1517,15 @@ if len(lheads) > len(rheads): warn = 1 else: + # add local heads involved in the push + updatelheads = [self.changelog.heads(x, lheads) + for x in update] + 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)