--- a/mercurial/bundle2.py Fri Mar 10 07:19:25 2023 +0100
+++ b/mercurial/bundle2.py Wed Mar 08 11:01:11 2023 +0100
@@ -1703,6 +1703,7 @@
vfs=None,
compression=None,
compopts=None,
+ allow_internal=False,
):
if bundletype.startswith(b'HG10'):
cg = changegroup.makechangegroup(repo, outgoing, b'01', source)
@@ -1718,6 +1719,14 @@
elif not bundletype.startswith(b'HG20'):
raise error.ProgrammingError(b'unknown bundle type: %s' % bundletype)
+ # enforce that no internal phase are to be bundled
+ bundled_internal = repo.revs(b"%ln and _internal()", outgoing.ancestorsof)
+ if bundled_internal and not allow_internal:
+ count = len(repo.revs(b'%ln and _internal()', outgoing.missing))
+ msg = "backup bundle would contains %d internal changesets"
+ msg %= count
+ raise error.ProgrammingError(msg)
+
caps = {}
if opts.get(b'obsolescence', False):
caps[b'obsmarkers'] = (b'V1',)