debugbuilddag: add a flag to allow running it from a non-empty repository
Allow that by default seems "dangerous", but having a flag to make it possible
will be useful to help building some repository incrementally. The newly introduced support is basic, but already useful.
Differential Revision: https://phab.mercurial-scm.org/D12094
--- a/mercurial/debugcommands.py Thu Jan 27 17:04:40 2022 +0100
+++ b/mercurial/debugcommands.py Thu Jan 27 15:22:04 2022 +0100
@@ -178,6 +178,12 @@
_(b'add single file all revs overwrite'),
),
(b'n', b'new-file', None, _(b'add new file at each rev')),
+ (
+ b'',
+ b'from-existing',
+ None,
+ _(b'continue from a non-empty repository'),
+ ),
],
_(b'[OPTION]... [TEXT]'),
)
@@ -188,6 +194,7 @@
mergeable_file=False,
overwritten_file=False,
new_file=False,
+ from_existing=False,
):
"""builds a repo with a given DAG from scratch in the current empty repo
@@ -226,7 +233,7 @@
text = ui.fin.read()
cl = repo.changelog
- if len(cl) > 0:
+ if len(cl) > 0 and not from_existing:
raise error.Abort(_(b'repository is not empty'))
# determine number of revs in DAG
--- a/tests/test-completion.t Thu Jan 27 17:04:40 2022 +0100
+++ b/tests/test-completion.t Thu Jan 27 15:22:04 2022 +0100
@@ -272,7 +272,7 @@
debugantivirusrunning:
debugapplystreamclonebundle:
debugbackupbundle: recover, patch, git, limit, no-merges, stat, graph, style, template
- debugbuilddag: mergeable-file, overwritten-file, new-file
+ debugbuilddag: mergeable-file, overwritten-file, new-file, from-existing
debugbundle: all, part-type, spec
debugcapabilities:
debugchangedfiles: compute