Mercurial > public > mercurial-scm > hg-stable
changeset 52486:8dede0df9de9
format: add pattern filtering to debugformat
The number of format to consider increase, this will make the command simpler to
use in tests and debug.
See test changes for some direct benefits.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Mon, 18 Nov 2024 17:25:30 +0100 |
parents | 57a4adbef74d |
children | a814534aaedd |
files | mercurial/debugcommands.py tests/test-copies-chain-merge.t tests/test-copies-in-changeset.t tests/test-persistent-nodemap.t tests/test-pullling-to-general-delta.t tests/test-revlog-delta-find.t tests/test-share-safe.t tests/test-share.t tests/test-sidedata.t tests/test-status-tracked-key.t tests/test-upgrade-repo.t |
diffstat | 11 files changed, 100 insertions(+), 46 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/debugcommands.py Tue Dec 10 10:02:58 2024 +0000 +++ b/mercurial/debugcommands.py Mon Nov 18 17:25:30 2024 +0100 @@ -1625,12 +1625,20 @@ ) -@command(b'debugformat', [] + cmdutil.formatteropts) -def debugformat(ui, repo, **opts): +@command( + b'debugformat', + [] + cmdutil.formatteropts, + b'[PATTERN] ... [PATTERN]', +) +def debugformat(ui, repo, *patterns, **opts): """display format information about the current repository Use --verbose to get extra information about current config value and - Mercurial default.""" + Mercurial default. + + If patterns are specified, only format matching at least one of these + pattern will be displayed. + """ maxvariantlength = max(len(fv.name) for fv in upgrade.allformatvariant) maxvariantlength = max(len(b'format-variant'), maxvariantlength) @@ -1658,6 +1666,14 @@ fm.plain(b' config default') fm.plain(b'\n') for fv in upgrade.allformatvariant: + if patterns: + for p in patterns: + # XXX support "re:" at some point + if p in fv.name: + break + else: + # no pattern matches, continue + continue fm.startitem() repovalue = fv.fromrepo(repo) configvalue = fv.fromconfig(repo)
--- a/tests/test-copies-chain-merge.t Tue Dec 10 10:02:58 2024 +0000 +++ b/tests/test-copies-chain-merge.t Mon Nov 18 17:25:30 2024 +0100 @@ -1649,7 +1649,8 @@ > [format] > exp-use-copies-side-data-changeset = yes > EOF - $ hg debugformat -v | grep -E 'changelog-v2|revlog-v2|copies-sdc' + $ hg debugformat -v changelog-v2 revlog-v2 copies-sdc + format-variant repo config default copies-sdc: no yes no revlog-v2: no no no changelog-v2: no yes no @@ -1675,7 +1676,8 @@ > enabled=yes > numcpus=8 > EOF - $ hg debugformat -v | grep -E 'changelog-v2|revlog-v2|copies-sdc' + $ hg debugformat -v changelog-v2 revlog-v2 copies-sdc + format-variant repo config default copies-sdc: no yes no revlog-v2: no no no changelog-v2: no yes no
--- a/tests/test-copies-in-changeset.t Tue Dec 10 10:02:58 2024 +0000 +++ b/tests/test-copies-in-changeset.t Mon Nov 18 17:25:30 2024 +0100 @@ -32,13 +32,13 @@ $ hg init repo $ cd repo #if sidedata - $ hg debugformat -v | grep -E 'format-variant|revlog-v2|copies-sdc|changelog-v2' + $ hg debugformat -v format-variant revlog-v2 copies-sdc changelog-v2 format-variant repo config default copies-sdc: yes yes no revlog-v2: no no no changelog-v2: yes yes no #else - $ hg debugformat -v | grep -E 'format-variant|revlog-v2|copies-sdc|changelog-v2' + $ hg debugformat -v format-variant revlog-v2 copies-sdc changelog-v2 format-variant repo config default copies-sdc: no no no revlog-v2: no no no @@ -419,7 +419,7 @@ downgrading - $ hg debugformat -v | grep -E 'format-variant|revlog-v2|copies-sdc|changelog-v2' + $ hg debugformat -v format-variant revlog-v2 copies-sdc changelog-v2 format-variant repo config default copies-sdc: yes yes no revlog-v2: no no no @@ -445,7 +445,7 @@ processed revlogs: - changelog - $ hg debugformat -v | grep -E 'format-variant|revlog-v2|copies-sdc|changelog-v2' + $ hg debugformat -v format-variant revlog-v2 copies-sdc changelog-v2 format-variant repo config default copies-sdc: no no no revlog-v2: no no no @@ -470,7 +470,7 @@ processed revlogs: - changelog - $ hg debugformat -v | grep -E 'format-variant|revlog-v2|copies-sdc|changelog-v2' + $ hg debugformat -v format-variant revlog-v2 copies-sdc changelog-v2 format-variant repo config default copies-sdc: yes yes no revlog-v2: no no no
--- a/tests/test-persistent-nodemap.t Tue Dec 10 10:02:58 2024 +0000 +++ b/tests/test-persistent-nodemap.t Mon Nov 18 17:25:30 2024 +0100 @@ -615,10 +615,12 @@ $ hg share race-repo ./other-wc --config format.use-share-safe=yes updating working directory 5001 files updated, 0 files merged, 0 files removed, 0 files unresolved - $ hg debugformat -R ./race-repo | grep -E 'share-safe|persistent-nodemap' + $ hg debugformat -R ./race-repo share-safe persistent-nodemap + format-variant repo share-safe: yes persistent-nodemap: yes - $ hg debugformat -R ./other-wc/ | grep -E 'share-safe|persistent-nodemap' + $ hg debugformat -R ./other-wc/ share-safe persistent-nodemap + format-variant repo share-safe: yes persistent-nodemap: yes $ hg -R ./other-wc update 'min(head())'
--- a/tests/test-pullling-to-general-delta.t Tue Dec 10 10:02:58 2024 +0000 +++ b/tests/test-pullling-to-general-delta.t Mon Nov 18 17:25:30 2024 +0100 @@ -19,7 +19,8 @@ $ hg init server $ hg clone --quiet --pull server client --config format.usegeneraldelta=no - $ hg debugformat -R client | grep generaldelta + $ hg debugformat -R client generaldelta + format-variant repo generaldelta: no Create some complexe history
--- a/tests/test-revlog-delta-find.t Tue Dec 10 10:02:58 2024 +0000 +++ b/tests/test-revlog-delta-find.t Mon Nov 18 17:25:30 2024 +0100 @@ -334,7 +334,8 @@ > --config format.usegeneraldelta=no \ > --config format.sparse-revlog=no \ > local-forced-full-p1-no-gd - $ hg debugformat -R local-forced-full-p1-no-gd | grep generaldelta + $ hg debugformat -R local-forced-full-p1-no-gd generaldelta + format-variant repo generaldelta: no $ hg -R local-forced-full-p1-no-gd pull --quiet local-pre-pull-full \ > --config debug.revlog.debug-delta=no
--- a/tests/test-share-safe.t Tue Dec 10 10:02:58 2024 +0000 +++ b/tests/test-share-safe.t Mon Nov 18 17:25:30 2024 +0100 @@ -631,7 +631,8 @@ $ hg debugbuilddag -R auto-upgrade --new-file .+5 $ hg -R auto-upgrade update 6 files updated, 0 files merged, 0 files removed, 0 files unresolved - $ hg debugformat -R auto-upgrade | grep share-safe + $ hg debugformat -R auto-upgrade share-safe + format-variant repo share-safe: no upgrade it to share-safe automatically @@ -641,7 +642,8 @@ > --config format.use-share-safe=yes automatically upgrading repository to the `share-safe` feature (see `hg help config.format.use-share-safe` for details) - $ hg debugformat -R auto-upgrade | grep share-safe + $ hg debugformat -R auto-upgrade share-safe + format-variant repo share-safe: yes downgrade it from share-safe automatically @@ -651,5 +653,6 @@ > --config format.use-share-safe=no automatically downgrading repository from the `share-safe` feature (see `hg help config.format.use-share-safe` for details) - $ hg debugformat -R auto-upgrade | grep share-safe + $ hg debugformat -R auto-upgrade share-safe + format-variant repo share-safe: no
--- a/tests/test-share.t Tue Dec 10 10:02:58 2024 +0000 +++ b/tests/test-share.t Mon Nov 18 17:25:30 2024 +0100 @@ -295,11 +295,13 @@ #endif $ hg init repo-safe-d1 --config format.use-share-safe=yes --config format.exp-rc-dirstate-v2=no - $ hg debugformat -R repo-safe-d1 | grep dirstate-v2 + $ hg debugformat -R repo-safe-d1 dirstate-v2 + format-variant repo dirstate-v2: no $ hg share repo-safe-d1 share-safe-d2 --config format.use-share-safe=yes --config format.exp-rc-dirstate-v2=yes updating working directory 0 files updated, 0 files merged, 0 files removed, 0 files unresolved - $ hg debugformat -R share-safe-d2 | grep dirstate-v2 + $ hg debugformat -R share-safe-d2 dirstate-v2 + format-variant repo dirstate-v2: yes
--- a/tests/test-sidedata.t Tue Dec 10 10:02:58 2024 +0000 +++ b/tests/test-sidedata.t Mon Nov 18 17:25:30 2024 +0100 @@ -61,10 +61,12 @@ ------------------------------------- $ hg init up-no-side-data --config experimental.revlogv2=no - $ hg debugformat -v -R up-no-side-data | grep -E 'changelog-v2|revlog-v2' + $ hg debugformat -v -R up-no-side-data changelog-v2 revlog-v2 + format-variant repo config default revlog-v2: no no no changelog-v2: no no no - $ hg debugformat -v -R up-no-side-data --config experimental.revlogv2=enable-unstable-format-and-corrupt-my-data | grep -E 'changelog-v2|revlog-v2' + $ hg debugformat -v -R up-no-side-data --config experimental.revlogv2=enable-unstable-format-and-corrupt-my-data changelog-v2 revlog-v2 + format-variant repo config default revlog-v2: no yes no changelog-v2: no no no $ hg debugupgraderepo -R up-no-side-data --config experimental.revlogv2=enable-unstable-format-and-corrupt-my-data > /dev/null @@ -73,10 +75,12 @@ ----------------------------------------- $ hg init up-side-data --config experimental.revlogv2=enable-unstable-format-and-corrupt-my-data - $ hg debugformat -v -R up-side-data | grep -E 'changelog-v2|revlog-v2' + $ hg debugformat -v -R up-side-data changelog-v2 revlog-v2 + format-variant repo config default revlog-v2: yes no no changelog-v2: no no no - $ hg debugformat -v -R up-side-data --config experimental.revlogv2=no | grep -E 'changelog-v2|revlog-v2' + $ hg debugformat -v -R up-side-data --config experimental.revlogv2=no changelog-v2 revlog-v2 + format-variant repo config default revlog-v2: yes no no changelog-v2: no no no $ hg debugupgraderepo -R up-side-data --config experimental.revlogv2=no > /dev/null
--- a/tests/test-status-tracked-key.t Tue Dec 10 10:02:58 2024 +0000 +++ b/tests/test-status-tracked-key.t Mon Nov 18 17:25:30 2024 +0100 @@ -211,7 +211,8 @@ $ hg debugbuilddag -R auto-upgrade --new-file .+5 $ hg -R auto-upgrade update 6 files updated, 0 files merged, 0 files removed, 0 files unresolved - $ hg debugformat -R auto-upgrade | grep tracked + $ hg debugformat -R auto-upgrade tracked-hint + format-variant repo tracked-hint: no upgrade it to dirstate-tracked-hint automatically @@ -221,7 +222,8 @@ > --config format.use-dirstate-tracked-hint=yes automatically upgrading repository to the `tracked-hint` feature (see `hg help config.format.use-dirstate-tracked-hint` for details) - $ hg debugformat -R auto-upgrade | grep tracked + $ hg debugformat -R auto-upgrade tracked-hint + format-variant repo tracked-hint: yes rhg supports this feature @@ -236,5 +238,6 @@ > --config format.use-dirstate-tracked-hint=no automatically downgrading repository from the `tracked-hint` feature (see `hg help config.format.use-dirstate-tracked-hint` for details) - $ hg debugformat -R auto-upgrade | grep tracked + $ hg debugformat -R auto-upgrade tracked + format-variant repo tracked-hint: no
--- a/tests/test-upgrade-repo.t Tue Dec 10 10:02:58 2024 +0000 +++ b/tests/test-upgrade-repo.t Mon Nov 18 17:25:30 2024 +0100 @@ -61,9 +61,11 @@ no revlogs to process - $ hg debugformat -R share-child | grep dirstate-v2 + $ hg debugformat -R share-child dirstate-v2 + format-variant repo dirstate-v2: yes - $ hg debugformat -R share-parent | grep dirstate-v2 + $ hg debugformat -R share-parent dirstate-v2 + format-variant repo dirstate-v2: no $ hg status --all -R share-child C nf0 @@ -131,9 +133,11 @@ no revlogs to process - $ hg debugformat -R share-child | grep dirstate-v2 + $ hg debugformat -R share-child dirstate-v2 + format-variant repo dirstate-v2: no - $ hg debugformat -R share-parent | grep dirstate-v2 + $ hg debugformat -R share-parent dirstate-v2 + format-variant repo dirstate-v2: no $ hg status --all -R share-child C nf0 @@ -1869,7 +1873,8 @@ Upgrade to dirstate-v2 - $ hg debugformat -v --config format.use-dirstate-v2=1 | grep dirstate-v2 + $ hg debugformat -v --config format.use-dirstate-v2=1 dirstate-v2 + format-variant repo config default dirstate-v2: no yes no $ hg debugupgraderepo --config format.use-dirstate-v2=1 --run upgrade will perform the following actions: @@ -1892,7 +1897,8 @@ removing temporary repository $TESTTMP/sparserevlogrepo/.hg/upgrade.* (glob) $ ls .hg/upgradebackup.*/dirstate .hg/upgradebackup.*/dirstate (glob) - $ hg debugformat -v | grep dirstate-v2 + $ hg debugformat -v dirstate-v2 + format-variant repo config default dirstate-v2: yes no no $ hg status $ dd bs=12 count=1 if=.hg/dirstate 2> /dev/null @@ -1916,7 +1922,8 @@ downgrading from dirstate-v2 to v1 replaced files will be backed up at $TESTTMP/sparserevlogrepo/.hg/upgradebackup.* (glob) removing temporary repository $TESTTMP/sparserevlogrepo/.hg/upgrade.* (glob) - $ hg debugformat -v | grep dirstate-v2 + $ hg debugformat -v dirstate-v2 + format-variant repo config default dirstate-v2: no no no $ hg status @@ -1927,7 +1934,8 @@ $ hg init --config format.use-dirstate-v2=no dirstate-v2-empty $ cd dirstate-v2-empty - $ hg debugformat | grep dirstate-v2 + $ hg debugformat dirstate-v2 + format-variant repo dirstate-v2: no upgrade @@ -1951,7 +1959,8 @@ upgrading to dirstate-v2 from v1 replaced files will be backed up at $TESTTMP/dirstate-v2-empty/.hg/upgradebackup.* (glob) removing temporary repository $TESTTMP/dirstate-v2-empty/.hg/upgrade.* (glob) - $ hg debugformat | grep dirstate-v2 + $ hg debugformat dirstate-v2 + format-variant repo dirstate-v2: yes downgrade @@ -1972,7 +1981,8 @@ downgrading from dirstate-v2 to v1 replaced files will be backed up at $TESTTMP/dirstate-v2-empty/.hg/upgradebackup.* (glob) removing temporary repository $TESTTMP/dirstate-v2-empty/.hg/upgrade.* (glob) - $ hg debugformat | grep dirstate-v2 + $ hg debugformat dirstate-v2 + format-variant repo dirstate-v2: no $ cd .. @@ -1993,7 +2003,8 @@ $ hg debugbuilddag -R auto-upgrade --new-file .+5 $ hg -R auto-upgrade update 6 files updated, 0 files merged, 0 files removed, 0 files unresolved - $ hg debugformat -R auto-upgrade | grep dirstate-v2 + $ hg debugformat -R auto-upgrade dirstate-v2 + format-variant repo dirstate-v2: no upgrade it to dirstate-v2 automatically @@ -2003,7 +2014,8 @@ > --config format.use-dirstate-v2=yes automatically upgrading repository to the `dirstate-v2` feature (see `hg help config.format.use-dirstate-v2` for details) - $ hg debugformat -R auto-upgrade | grep dirstate-v2 + $ hg debugformat -R auto-upgrade dirstate-v2 + format-variant repo dirstate-v2: yes downgrade it from dirstate-v2 automatically @@ -2013,14 +2025,16 @@ > --config format.use-dirstate-v2=no automatically downgrading repository from the `dirstate-v2` feature (see `hg help config.format.use-dirstate-v2` for details) - $ hg debugformat -R auto-upgrade | grep dirstate-v2 + $ hg debugformat -R auto-upgrade dirstate-v2 + format-variant repo dirstate-v2: no For multiple change at the same time ------------------------------------ - $ hg debugformat -R auto-upgrade | grep -E '(dirstate-v2|tracked|share-safe)' + $ hg debugformat -R auto-upgrade dirstate-v2 tracked share-safe + format-variant repo dirstate-v2: no tracked-hint: yes share-safe: no @@ -2038,7 +2052,8 @@ (see `hg help config.format.use-share-safe` for details) automatically downgrading repository from the `tracked-hint` feature (see `hg help config.format.use-dirstate-tracked-hint` for details) - $ hg debugformat -R auto-upgrade | grep -E '(dirstate-v2|tracked|share-safe)' + $ hg debugformat -R auto-upgrade dirstate-v2 tracked share-safe + format-variant repo dirstate-v2: yes tracked-hint: no share-safe: yes @@ -2047,7 +2062,8 @@ --------------------------- - $ hg debugformat -R auto-upgrade | grep -E '(dirstate-v2|tracked|share-safe)' + $ hg debugformat -R auto-upgrade dirstate-v2 tracked share-safe + format-variant repo dirstate-v2: yes tracked-hint: no share-safe: yes @@ -2062,7 +2078,8 @@ > --config format.use-share-safe.automatic-upgrade-of-mismatching-repositories:quiet=yes \ > --config format.use-share-safe=no - $ hg debugformat -R auto-upgrade | grep -E '(dirstate-v2|tracked|share-safe)' + $ hg debugformat -R auto-upgrade dirstate-v2 tracked share-safe + format-variant repo dirstate-v2: no tracked-hint: yes share-safe: no @@ -2077,7 +2094,8 @@ > --config format.use-share-safe.automatic-upgrade-of-mismatching-repositories=yes \ > --config format.use-share-safe.automatic-upgrade-of-mismatching-repositories:quiet=yes \ > --config format.use-share-safe=yes - $ hg debugformat -R auto-upgrade | grep -E '(dirstate-v2|tracked|share-safe)' + $ hg debugformat -R auto-upgrade dirstate-v2 tracked share-safe + format-variant repo dirstate-v2: yes tracked-hint: no share-safe: yes @@ -2092,7 +2110,8 @@ $ hg status -R auto-upgrade \ > --config format.use-dirstate-v2.automatic-upgrade-of-mismatching-repositories=yes \ > --config format.use-dirstate-v2=no - $ hg debugformat -R auto-upgrade | grep dirstate-v2 + $ hg debugformat -R auto-upgrade dirstate-v2 + format-variant repo dirstate-v2: yes $ chmod -R u+w auto-upgrade @@ -2107,7 +2126,8 @@ $ hg status -R auto-upgrade \ > --config format.use-dirstate-v2.automatic-upgrade-of-mismatching-repositories=yes \ > --config format.use-dirstate-v2=no - $ hg debugformat -R auto-upgrade | grep dirstate-v2 + $ hg debugformat -R auto-upgrade dirstate-v2 + format-variant repo dirstate-v2: yes $ killdaemons.py