debugrebuildstate: wrap the operation in a `changing_parents` context
This ismaybe a "changing_files" case? However this would be the only
usage of `rebuild` outside a `changing_parents` context and this is a debug
command, so lets not make the code base more complex because of that one command.
--- a/mercurial/debugcommands.py Sun Feb 19 02:50:46 2023 +0100
+++ b/mercurial/debugcommands.py Mon Feb 20 14:05:19 2023 +0100
@@ -3142,8 +3142,8 @@
dsnotadded = {f for f in dsonly if not dirstate.get_entry(f).added}
changedfiles = manifestonly | dsnotadded
- dirstate.rebuild(ctx.node(), ctx.manifest(), changedfiles)
- dirstate.write(repo.currenttransaction())
+ with dirstate.changing_parents(repo):
+ dirstate.rebuild(ctx.node(), ctx.manifest(), changedfiles)
@command(