[PATCH] purge: use opts.get()
Pierre-Yves David
pierre-yves.david at ens-lyon.org
Fri May 27 10:32:21 EDT 2016
This is not the first time we need to do this, should we grow some
semi-official API to call a command? (some subset of dispatch with a
pythonic way of passing argument)
On 05/24/2016 05:00 PM, Augie Fackler wrote:
> On Mon, May 16, 2016 at 02:24:57PM -0700, Gregory Szorc wrote:
>> # HG changeset patch
>> # User Gregory Szorc <gregory.szorc at gmail.com>
>> # Date 1463433699 25200
>> # Mon May 16 14:21:39 2016 -0700
>> # Node ID a2a87f12649b7485f42b4d4d25e8f27e5a0c3f07
>> # Parent 90d84e1e427a9d65aedd870cdb7283f84bb30141
>> purge: use opts.get()
>
> Sure, queued. Thanks!
>
>>
>> Most commands use opts.get() to retrieve values for options
>> that may not be explicitly passed. purge wasn't.
>>
>> This makes it easier to call purge() from 3rd party extensions.
>>
>> diff --git a/hgext/purge.py b/hgext/purge.py
>> --- a/hgext/purge.py
>> +++ b/hgext/purge.py
>> @@ -79,44 +79,44 @@ def purge(ui, repo, *dirs, **opts):
>> If directories are given on the command line, only files in these
>> directories are considered.
>>
>> Be careful with purge, as you could irreversibly delete some files
>> you forgot to add to the repository. If you only want to print the
>> list of files that this program would delete, use the --print
>> option.
>> '''
>> - act = not opts['print']
>> + act = not opts.get('print')
>> eol = '\n'
>> - if opts['print0']:
>> + if opts.get('print0'):
>> eol = '\0'
>> act = False # --print0 implies --print
>> - removefiles = opts['files']
>> - removedirs = opts['dirs']
>> + removefiles = opts.get('files')
>> + removedirs = opts.get('dirs')
>> if not removefiles and not removedirs:
>> removefiles = True
>> removedirs = True
>>
>> def remove(remove_func, name):
>> if act:
>> try:
>> remove_func(repo.wjoin(name))
>> except OSError:
>> m = _('%s cannot be removed') % name
>> - if opts['abort_on_err']:
>> + if opts.get('abort_on_err'):
>> raise error.Abort(m)
>> ui.warn(_('warning: %s\n') % m)
>> else:
>> ui.write('%s%s' % (name, eol))
>>
>> match = scmutil.match(repo[None], dirs, opts)
>> if removedirs:
>> directories = []
>> match.explicitdir = match.traversedir = directories.append
>> - status = repo.status(match=match, ignored=opts['all'], unknown=True)
>> + status = repo.status(match=match, ignored=opts.get('all'), unknown=True)
>>
>> if removefiles:
>> for f in sorted(status.unknown + status.ignored):
>> if act:
>> ui.note(_('removing file %s\n') % f)
>> remove(util.unlink, f)
>>
>> if removedirs:
>> _______________________________________________
>> Mercurial-devel mailing list
>> Mercurial-devel at mercurial-scm.org
>> https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at mercurial-scm.org
> https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
>
More information about the Mercurial-devel
mailing list