Mercurial > public > mercurial-scm > hg-stable
diff hgext/shelve.py @ 30823:806a830e6612
shelve: allow multiple shelves with --patch and --stat
Before this patch, there was a single way to see multiple shelves using
`--patch --list` which show all the shelves. Doing `--patch s1 s2` returns an
error. This patch allows to show multiple shelves using `--patch` and `--stat`.
author | Pulkit Goyal <7895pulkit@gmail.com> |
---|---|
date | Sat, 14 Jan 2017 01:23:07 +0530 |
parents | 64a75655b988 |
children | dfc6663f97ca |
line wrap: on
line diff
--- a/hgext/shelve.py Sat Jan 14 19:41:43 2017 -0800 +++ b/hgext/shelve.py Sat Jan 14 01:23:07 2017 +0530 @@ -522,14 +522,14 @@ for chunk, label in patch.diffstatui(difflines, width=width): ui.write(chunk, label=label) -def singlepatchcmds(ui, repo, pats, opts, subcommand): - """subcommand that displays a single shelf""" - if len(pats) != 1: - raise error.Abort(_("--%s expects a single shelf") % subcommand) - shelfname = pats[0] +def patchcmds(ui, repo, pats, opts, subcommand): + """subcommand that displays shelves""" + if len(pats) == 0: + raise error.Abort(_("--%s expects at least one shelf") % subcommand) - if not shelvedfile(repo, shelfname, patchextension).exists(): - raise error.Abort(_("cannot find shelf %s") % shelfname) + for shelfname in pats: + if not shelvedfile(repo, shelfname, patchextension).exists(): + raise error.Abort(_("cannot find shelf %s") % shelfname) listcmd(ui, repo, pats, opts) @@ -967,9 +967,9 @@ elif checkopt('list'): return listcmd(ui, repo, pats, opts) elif checkopt('patch'): - return singlepatchcmds(ui, repo, pats, opts, subcommand='patch') + return patchcmds(ui, repo, pats, opts, subcommand='patch') elif checkopt('stat'): - return singlepatchcmds(ui, repo, pats, opts, subcommand='stat') + return patchcmds(ui, repo, pats, opts, subcommand='stat') else: return createcmd(ui, repo, pats, opts)