tests: add test to demonstrate issue6159
Differential Revision: https://phab.mercurial-scm.org/D6740
--- a/tests/test-bookmarks-pushpull.t Sun Aug 25 19:46:24 2019 +0700
+++ b/tests/test-bookmarks-pushpull.t Sun Aug 18 02:47:32 2019 +0530
@@ -1322,3 +1322,61 @@
abort: push failed on remote
[255]
#endif
+
+-- test for pushing bookmarks pointing to secret changesets
+
+Set up a "remote" repo
+ $ hg init issue6159remote
+ $ cd issue6159remote
+ $ echo a > a
+ $ hg add a
+ $ hg commit -m_
+ $ hg bookmark foo
+ $ cd ..
+
+Clone a local repo
+ $ hg clone -q issue6159remote issue6159local
+ $ cd issue6159local
+ $ hg up -qr foo
+ $ echo b > b
+
+Move the bookmark "foo" to point at a secret changeset
+ $ hg commit -qAm_ --config phases.new-commit=secret
+
+Pushing the bookmark "foo" now fails as it contains a secret changeset
+#if b2-pushkey
+ $ hg push -r foo
+ pushing to $TESTTMP/issue6159remote
+ searching for changes
+ no changes found (ignored 1 secret changesets)
+ abort: updating bookmark foo failed!
+ [255]
+#endif
+
+#if b2-binary
+ $ hg push -r foo
+ pushing to $TESTTMP/issue6159remote
+ searching for changes
+ no changes found (ignored 1 secret changesets)
+ updating bookmark foo
+ [1]
+#endif
+
+Now the "remote" repo contains a bookmark pointing to a nonexistent revision
+ $ cd ../issue6159remote
+#if b2-pushkey
+ $ hg bookmark
+ * foo 0:1599bc8b897a
+ $ hg log -r 1599bc8b897a
+ 0:1599bc8b897a _ (no-eol)
+#endif
+
+#if b2-binary
+ $ hg bookmark
+ no bookmarks set
+ $ cat .hg/bookmarks
+ cf489fd8a374cab73c2dc19e899bde6fe3a43f8f foo
+ $ hg log -r cf489fd8a374
+ abort: unknown revision 'cf489fd8a374'!
+ [255]
+#endif