Mercurial > public > mercurial-scm > hg
diff mercurial/debugcommands.py @ 46479:c2435280ca63
copy-tracing: add a --compute flag to debugchangedfiles
This will help analysis of possible misbehaving cases.
Differential Revision: https://phab.mercurial-scm.org/D9946
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Tue, 02 Feb 2021 07:02:25 +0100 |
parents | 4f5e9a77ff7a |
children | 5aac1a1a5beb |
line wrap: on
line diff
--- a/mercurial/debugcommands.py Wed Feb 03 23:23:56 2021 -0800 +++ b/mercurial/debugcommands.py Tue Feb 02 07:02:25 2021 +0100 @@ -484,14 +484,31 @@ ui.write(b' %s\n' % v) -@command(b'debugchangedfiles', [], b'REV') -def debugchangedfiles(ui, repo, rev): +@command( + b'debugchangedfiles', + [ + ( + b'', + b'compute', + False, + b"compute information instead of reading it from storage", + ), + ], + b'REV', +) +def debugchangedfiles(ui, repo, rev, **opts): """list the stored files changes for a revision""" ctx = scmutil.revsingle(repo, rev, None) - sd = repo.changelog.sidedata(ctx.rev()) - files_block = sd.get(sidedata.SD_FILES) - if files_block is not None: - files = metadata.decode_files_sidedata(sd) + files = None + + if opts['compute']: + files = metadata.compute_all_files_changes(ctx) + else: + sd = repo.changelog.sidedata(ctx.rev()) + files_block = sd.get(sidedata.SD_FILES) + if files_block is not None: + files = metadata.decode_files_sidedata(sd) + if files is not None: for f in sorted(files.touched): if f in files.added: action = b"added"