Revert push new heads logic
This breaks push -r's new head detection but fixes the common case.
For now we'll assume that someone doing push -r knows what they're doing.
--- a/mercurial/localrepo.py Fri Apr 21 15:33:51 2006 -0500
+++ b/mercurial/localrepo.py Fri Apr 21 16:30:23 2006 -0500
@@ -1039,14 +1039,10 @@
self.ui.status(_("no changes found\n"))
return 1
elif not force:
- if revs is not None:
- updated_heads = {}
- for base in msng_cl:
- for parent in self.changelog.parents(base):
- if parent in remote_heads:
- updated_heads[parent] = True
- updated_heads = updated_heads.keys()
- if len(updated_heads) < len(heads):
+ # FIXME we don't properly detect creation of new heads
+ # in the push -r case, assume the user knows what he's doing
+ if not revs and len(remote_heads) < len(heads) \
+ and remote_heads != [nullid]:
self.ui.warn(_("abort: push creates new remote branches!\n"))
self.ui.status(_("(did you forget to merge?"
" use push -f to force)\n"))
--- a/tests/test-push-warn.out Fri Apr 21 15:33:51 2006 -0500
+++ b/tests/test-push-warn.out Fri Apr 21 16:30:23 2006 -0500
@@ -30,9 +30,13 @@
no changes found
pushing to ../c
searching for changes
-abort: push creates new remote branches!
-(did you forget to merge? use push -f to force)
+adding changesets
+adding manifests
+adding file changes
+added 2 changesets with 2 changes to 1 files (+2 heads)
pushing to ../c
searching for changes
-abort: push creates new remote branches!
-(did you forget to merge? use push -f to force)
+adding changesets
+adding manifests
+adding file changes
+added 1 changesets with 1 changes to 1 files