diff tests/test-obsolete-checkheads.t @ 17547:e6de4761d26f

checkheads: attend to phases when computing new heads with obsolete Checkheads was more permissive than expected. When the remote heads are public we don't need to search for successors. None will make a public head disappear.
author Pierre-Yves David <pierre-yves.david@logilab.fr>
date Fri, 24 Aug 2012 16:52:45 +0200
parents 488e470634d8
children eaa5fcc5bd20
line wrap: on
line diff
--- a/tests/test-obsolete-checkheads.t	Wed Aug 01 19:35:05 2012 +0200
+++ b/tests/test-obsolete-checkheads.t	Fri Aug 24 16:52:45 2012 +0200
@@ -71,13 +71,72 @@
   adding file changes
   added 1 changesets with 1 changes to 1 files (+1 heads)
 
-old head is obsolete but replacement in not pushed
+old head is now public (public local version)
+=============================================
+
+setup
+
+  $ rm -fr ../remote
+  $ cp -r ../backup1 ../remote
+  $ hg -R ../remote phase --public c70b08862e08
+  $ hg pull -v
+  pulling from $TESTTMP/remote
+  searching for changes
+  no changes found
+  $ hg glog --hidden
+  @  71e3228bffe1 (draft) add new
+  |
+  | o  c70b08862e08 (public) add old
+  |/
+  o  b4952fcf48cf (public) add base
+  
+
+Abort: old will still be an head because it's public.
+
+  $ hg push
+  pushing to $TESTTMP/remote
+  searching for changes
+  abort: push creates new remote head 71e3228bffe1!
+  (did you forget to merge? use push -f to force)
+  [255]
+
+old head is now public (public remote version)
+==============================================
+
+TODO: Not implemented yet.
+
+# setup
+#
+#   $ rm -fr ../remote
+#   $ cp -r ../backup1 ../remote
+#   $ hg -R ../remote phase --public c70b08862e08
+#   $ hg phase --draft --force c70b08862e08
+#   $ hg glog --hidden
+#   @  71e3228bffe1 (draft) add new
+#   |
+#   | x  c70b08862e08 (draft) add old
+#   |/
+#   o  b4952fcf48cf (public) add base
+#
+#
+#
+# Abort: old will still be an head because it's public.
+#
+#   $ hg push
+#   pushing to $TESTTMP/remote
+#   searching for changes
+#   abort: push creates new remote head 71e3228bffe1!
+#   (did you forget to merge? use push -f to force)
+#   [255]
+
+old head is obsolete but replacement is not pushed
 ==================================================
 
 setup
 
   $ rm -fr ../remote
   $ cp -r ../backup1 ../remote
+  $ hg phase --draft --force '(0::) - 0'
   $ hg up -q '.^'
   $ mkcommit other
   created new head