Mercurial > public > mercurial-scm > hg
comparison mercurial/cmdutil.py @ 35350:82ee401135dd
py3: handle keyword arguments correctly in cmdutil.py
Differential Revision: https://phab.mercurial-scm.org/D1626
author | Pulkit Goyal <7895pulkit@gmail.com> |
---|---|
date | Sun, 10 Dec 2017 04:45:10 +0530 |
parents | 6ba79cf34f5e |
children | 8a0cac20a1ad |
comparison
equal
deleted
inserted
replaced
35349:a274c4b698f2 | 35350:82ee401135dd |
---|---|
179 return cmd.lstrip("^").split("|") | 179 return cmd.lstrip("^").split("|") |
180 | 180 |
181 def setupwrapcolorwrite(ui): | 181 def setupwrapcolorwrite(ui): |
182 # wrap ui.write so diff output can be labeled/colorized | 182 # wrap ui.write so diff output can be labeled/colorized |
183 def wrapwrite(orig, *args, **kw): | 183 def wrapwrite(orig, *args, **kw): |
184 label = kw.pop('label', '') | 184 label = kw.pop(r'label', '') |
185 for chunk, l in patch.difflabel(lambda: args): | 185 for chunk, l in patch.difflabel(lambda: args): |
186 orig(chunk, label=label + l) | 186 orig(chunk, label=label + l) |
187 | 187 |
188 oldwrite = ui.write | 188 oldwrite = ui.write |
189 def wrap(*args, **kwargs): | 189 def wrap(*args, **kwargs): |
370 # patch. Now is the time to delegate the job to | 370 # patch. Now is the time to delegate the job to |
371 # commit/qrefresh or the like! | 371 # commit/qrefresh or the like! |
372 | 372 |
373 # Make all of the pathnames absolute. | 373 # Make all of the pathnames absolute. |
374 newfiles = [repo.wjoin(nf) for nf in newfiles] | 374 newfiles = [repo.wjoin(nf) for nf in newfiles] |
375 return commitfunc(ui, repo, *newfiles, **opts) | 375 return commitfunc(ui, repo, *newfiles, **pycompat.strkwargs(opts)) |
376 finally: | 376 finally: |
377 # 5. finally restore backed-up files | 377 # 5. finally restore backed-up files |
378 try: | 378 try: |
379 dirstate = repo.dirstate | 379 dirstate = repo.dirstate |
380 for realname, tmpname in backups.iteritems(): | 380 for realname, tmpname in backups.iteritems(): |
1332 m = scmutil.matchfiles(repo, files or []) | 1332 m = scmutil.matchfiles(repo, files or []) |
1333 editform = mergeeditform(repo[None], 'import.normal') | 1333 editform = mergeeditform(repo[None], 'import.normal') |
1334 if opts.get('exact'): | 1334 if opts.get('exact'): |
1335 editor = None | 1335 editor = None |
1336 else: | 1336 else: |
1337 editor = getcommiteditor(editform=editform, **opts) | 1337 editor = getcommiteditor(editform=editform, |
1338 **pycompat.strkwargs(opts)) | |
1338 extra = {} | 1339 extra = {} |
1339 for idfunc in extrapreimport: | 1340 for idfunc in extrapreimport: |
1340 extrapreimportmap[idfunc](repo, extractdata, extra, opts) | 1341 extrapreimportmap[idfunc](repo, extractdata, extra, opts) |
1341 overrides = {} | 1342 overrides = {} |
1342 if partial: | 1343 if partial: |
2715 revmatchfn = filematcher(ctx.rev()) | 2716 revmatchfn = filematcher(ctx.rev()) |
2716 edges = edgefn(type, char, state, rev, parents) | 2717 edges = edgefn(type, char, state, rev, parents) |
2717 firstedge = next(edges) | 2718 firstedge = next(edges) |
2718 width = firstedge[2] | 2719 width = firstedge[2] |
2719 displayer.show(ctx, copies=copies, matchfn=revmatchfn, | 2720 displayer.show(ctx, copies=copies, matchfn=revmatchfn, |
2720 _graphwidth=width, **props) | 2721 _graphwidth=width, **pycompat.strkwargs(props)) |
2721 lines = displayer.hunk.pop(rev).split('\n') | 2722 lines = displayer.hunk.pop(rev).split('\n') |
2722 if not lines[-1]: | 2723 if not lines[-1]: |
2723 del lines[-1] | 2724 del lines[-1] |
2724 displayer.flush(ctx) | 2725 displayer.flush(ctx) |
2725 for type, char, width, coldata in itertools.chain([firstedge], edges): | 2726 for type, char, width, coldata in itertools.chain([firstedge], edges): |
3006 | 3007 |
3007 return ret | 3008 return ret |
3008 | 3009 |
3009 def cat(ui, repo, ctx, matcher, basefm, fntemplate, prefix, **opts): | 3010 def cat(ui, repo, ctx, matcher, basefm, fntemplate, prefix, **opts): |
3010 err = 1 | 3011 err = 1 |
3012 opts = pycompat.byteskwargs(opts) | |
3011 | 3013 |
3012 def write(path): | 3014 def write(path): |
3013 filename = None | 3015 filename = None |
3014 if fntemplate: | 3016 if fntemplate: |
3015 filename = makefilename(repo, fntemplate, ctx.node(), | 3017 filename = makefilename(repo, fntemplate, ctx.node(), |
3048 sub = ctx.sub(subpath) | 3050 sub = ctx.sub(subpath) |
3049 try: | 3051 try: |
3050 submatch = matchmod.subdirmatcher(subpath, matcher) | 3052 submatch = matchmod.subdirmatcher(subpath, matcher) |
3051 | 3053 |
3052 if not sub.cat(submatch, basefm, fntemplate, | 3054 if not sub.cat(submatch, basefm, fntemplate, |
3053 os.path.join(prefix, sub._path), **opts): | 3055 os.path.join(prefix, sub._path), |
3056 **pycompat.strkwargs(opts)): | |
3054 err = 0 | 3057 err = 0 |
3055 except error.RepoLookupError: | 3058 except error.RepoLookupError: |
3056 ui.status(_("skipping missing subrepository: %s\n") | 3059 ui.status(_("skipping missing subrepository: %s\n") |
3057 % os.path.join(prefix, subpath)) | 3060 % os.path.join(prefix, subpath)) |
3058 | 3061 |