debugcommands: issue warning when repo has secret changesets (issue5589)
This seems like a prudent thing to do. As the inline comment says,
we may want to make this abort once the functionality is stabilized
as part of `hg bundle`. Let's save that debate for another day.
--- a/mercurial/debugcommands.py Fri Jun 09 10:41:13 2017 -0700
+++ b/mercurial/debugcommands.py Fri Jun 09 10:42:19 2017 -0700
@@ -47,6 +47,7 @@
lock as lockmod,
merge as mergemod,
obsolete,
+ phases,
policy,
pvec,
pycompat,
@@ -421,6 +422,12 @@
Stream bundles are special bundles that are essentially archives of
revlog files. They are commonly used for cloning very quickly.
"""
+ # TODO we may want to turn this into an abort when this functionality
+ # is moved into `hg bundle`.
+ if phases.hassecret(repo):
+ ui.warn(_('(warning: stream clone bundle will contain secret '
+ 'revisions)\n'))
+
requirements, gen = streamclone.generatebundlev1(repo)
changegroup.writechunks(ui, gen, fname)
--- a/tests/test-bundle.t Fri Jun 09 10:41:13 2017 -0700
+++ b/tests/test-bundle.t Fri Jun 09 10:42:19 2017 -0700
@@ -302,6 +302,20 @@
$ hg debugbundle --spec packednongd.hg
none-packed1;requirements%3Drevlogv1
+Warning emitted when packed bundles contain secret changesets
+
+ $ hg init testsecret
+ $ cd testsecret
+ $ touch foo
+ $ hg -q commit -A -m initial
+ $ hg phase --force --secret -r .
+ $ cd ..
+
+ $ hg -R testsecret debugcreatestreamclonebundle packedsecret.hg
+ (warning: stream clone bundle will contain secret revisions)
+ writing 301 bytes for 3 files
+ bundle requirements: generaldelta, revlogv1
+
Unpacking packed1 bundles with "hg unbundle" isn't allowed
$ hg init packed