# HG changeset patch # User Gregory Szorc # Date 1497030139 25200 # Node ID 23734c0e361fa19c1c580672f0f06d9117e367e6 # Parent 33b7283a38284e65e9ec78dc73566ba919267186 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. diff -r 33b7283a3828 -r 23734c0e361f mercurial/debugcommands.py --- 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) diff -r 33b7283a3828 -r 23734c0e361f tests/test-bundle.t --- 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