diff -r 4f11978ae45d -r a9702c47a19f mercurial/localrepo.py --- a/mercurial/localrepo.py Wed Apr 07 21:31:47 2010 +0200 +++ b/mercurial/localrepo.py Thu Apr 08 19:46:47 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)