sparse: move printing of sparse config changes function into core

As part of the port, all arguments now have default values of 0.
Strings are now also given the i18n treatment.
This commit is contained in:
Gregory Szorc 2017-07-08 13:34:19 -07:00
parent 519ece1048
commit d86e3657d2
3 changed files with 38 additions and 41 deletions

View File

@ -374,7 +374,8 @@ def debugsparse(ui, repo, *pats, **opts):
len,
sparse.refreshwdir(repo, repo.status(), sparse.matcher(repo),
force=force))
_verbose_output(ui, opts, 0, 0, 0, *fcounts)
sparse.printchanges(ui, opts, added=fcounts[0], dropped=fcounts[1],
conflicting=fcounts[2])
finally:
wlock.release()
@ -437,8 +438,8 @@ def _config(ui, repo, pats, opts, include=False, exclude=False, reset=False,
len(oldinclude - newinclude))
excludecount = (len(newexclude - oldexclude) -
len(oldexclude - newexclude))
_verbose_output(
ui, opts, profilecount, includecount, excludecount, *fcounts)
sparse.printchanges(ui, opts, profilecount, includecount,
excludecount, *fcounts)
except Exception:
sparse.writeconfig(repo, oldinclude, oldexclude, oldprofiles)
raise
@ -500,32 +501,5 @@ def _import(ui, repo, files, opts, force=False):
sparse.writeconfig(repo, oincludes, oexcludes, oprofiles)
raise
_verbose_output(ui, opts, profilecount, includecount, excludecount,
*fcounts)
def _verbose_output(ui, opts, profilecount, includecount, excludecount, added,
dropped, lookup):
"""Produce --verbose and templatable output
This specifically enables -Tjson, providing machine-readable stats on how
the sparse profile changed.
"""
with ui.formatter('sparse', opts) as fm:
fm.startitem()
fm.condwrite(ui.verbose, 'profiles_added', 'Profile # change: %d\n',
profilecount)
fm.condwrite(ui.verbose, 'include_rules_added',
'Include rule # change: %d\n', includecount)
fm.condwrite(ui.verbose, 'exclude_rules_added',
'Exclude rule # change: %d\n', excludecount)
# In 'plain' verbose mode, mergemod.applyupdates already outputs what
# files are added or removed outside of the templating formatter
# framework. No point in repeating ourselves in that case.
if not fm.isplain():
fm.condwrite(ui.verbose, 'files_added', 'Files added: %d\n',
added)
fm.condwrite(ui.verbose, 'files_dropped', 'Files dropped: %d\n',
dropped)
fm.condwrite(ui.verbose, 'files_conflicting',
'Files conflicting: %d\n', lookup)
sparse.printchanges(ui, opts, profilecount, includecount, excludecount,
*fcounts)

View File

@ -512,3 +512,26 @@ def clearrules(repo, force=False):
oldmatch = matcher(repo)
writeconfig(repo, set(), set(), profiles)
refreshwdir(repo, oldstatus, oldmatch, force=force)
def printchanges(ui, opts, profilecount=0, includecount=0, excludecount=0,
added=0, dropped=0, conflicting=0):
"""Print output summarizing sparse config changes."""
with ui.formatter('sparse', opts) as fm:
fm.startitem()
fm.condwrite(ui.verbose, 'profiles_added', _('Profiles changed: %d\n'),
profilecount)
fm.condwrite(ui.verbose, 'include_rules_added',
_('Include rules changed: %d\n'), includecount)
fm.condwrite(ui.verbose, 'exclude_rules_added',
_('Exclude rules changed: %d\n'), excludecount)
# In 'plain' verbose mode, mergemod.applyupdates already outputs what
# files are added or removed outside of the templating formatter
# framework. No point in repeating ourselves in that case.
if not fm.isplain():
fm.condwrite(ui.verbose, 'files_added', _('Files added: %d\n'),
added)
fm.condwrite(ui.verbose, 'files_dropped', _('Files dropped: %d\n'),
dropped)
fm.condwrite(ui.verbose, 'files_conflicting',
_('Files conflicting: %d\n'), conflicting)

View File

@ -35,9 +35,9 @@ Verify basic --include and --reset
$ hg debugsparse --clear-rules
$ hg debugsparse --include 'hide' --verbose
removing show
Profile # change: 0
Include rule # change: 1
Exclude rule # change: 0
Profiles changed: 0
Include rules changed: 1
Exclude rules changed: 0
$ hg debugsparse --reset -Tjson
[
@ -53,9 +53,9 @@ Verify basic --include and --reset
$ hg debugsparse --include 'hide'
$ hg debugsparse --reset --verbose
getting show
Profile # change: 0
Include rule # change: -1
Exclude rule # change: 0
Profiles changed: 0
Include rules changed: -1
Exclude rules changed: 0
Verifying that problematic files still allow us to see the deltas when forcing:
@ -77,6 +77,6 @@ Verifying that problematic files still allow us to see the deltas when forcing:
pending changes to 'hide'
$ hg debugsparse --delete 'show*' --force --verbose
pending changes to 'hide'
Profile # change: 0
Include rule # change: -1
Exclude rule # change: 0
Profiles changed: 0
Include rules changed: -1
Exclude rules changed: 0