Mercurial > hg-stable
changeset 39236:362c4603602d
zsh_completion: update all options
It's just too hard to further split this patch. What it does:
- adds missing flags
- removes flags that are no longer there
- updates flag descriptions and argument names
- adds * where using the same option many times is okay
- groups with () mutually exclusive flags that can't be used together
- adds + and = to options that need arguments
- removes + and = from options that don't take any arguments
- fixes minor issues and a typo
Differential Revision: https://phab.mercurial-scm.org/D4267
author | Anton Shestakov <av6@dwimlabs.net> |
---|---|
date | Fri, 10 Aug 2018 23:24:33 +0800 |
parents | f625e457f43a |
children | 1af95139e5ec |
files | contrib/zsh_completion |
diffstat | 1 files changed, 166 insertions(+), 141 deletions(-) [+] |
line wrap: on
line diff
--- a/contrib/zsh_completion Fri Aug 10 14:46:56 2018 +0800 +++ b/contrib/zsh_completion Fri Aug 10 23:24:33 2018 +0800 @@ -371,22 +371,24 @@ # Common options _hg_global_opts=( - '(--repository -R)'{-R+,--repository=}'[repository root directory]:repository:_files -/' - '--cwd[change working directory]:new working directory:_files -/' - '(--noninteractive -y)'{-y,--noninteractive}'[do not prompt, assume yes for any required answers]' + '(--repository -R)'{-R+,--repository=}'[repository root directory or name of overlay bundle file]:repository:_files -/' + '--cwd=[change working directory]:new working directory:_files -/' + '(--noninteractive -y)'{-y,--noninteractive}'[do not prompt, automatically pick the first choice for all prompts]' '(--verbose -v)'{-v,--verbose}'[enable additional output]' '*--config[set/override config option]:defined config items:_hg_config' '(--quiet -q)'{-q,--quiet}'[suppress output]' '(--help -h)'{-h,--help}'[display help and exit]' - '--debug[debug mode]' + '--debug[enable debugging output]' '--debugger[start debugger]' - '--encoding[set the charset encoding]' - '--encodingmode[set the charset encoding mode]' - '--lsprof[print improved command execution profile]' - '--traceback[print traceback on exception]' + '--encoding=[set the charset encoding]:encoding' + '--encodingmode=[set the charset encoding mode]:encoding mode' + '--traceback[always print a traceback on exception]' '--time[time how long the command takes]' - '--profile[profile]' + '--profile[print command execution profile]' '--version[output version information and exit]' + '--hidden[consider hidden changesets]' + '--color=[when to colorize]:when:(true false yes no always auto never debug)' + '--pager=[when to paginate (default: auto)]:when:(true false yes no always auto never)' ) _hg_pat_opts=( @@ -402,8 +404,8 @@ _hg_date_user_opts=( '(--currentdate -D)'{-D,--currentdate}'[record the current date as commit date]' '(--currentuser -U)'{-U,--currentuser}'[record the current user as committer]' - '(--date -d)'{-d+,--date=}'[record the specified date as commit date]:date:' - '(--user -u)'{-u+,--user=}'[record the specified user as committer]:user:') + '(--date -d)'{-d+,--date=}'[record the specified date as commit date]:date' + '(--user -u)'{-u+,--user=}'[record the specified user as committer]:user') _hg_gitlike_opts=( '(--git -g)'{-g,--git}'[use git extended diff format]') @@ -414,7 +416,8 @@ '--nodates[omit dates from diff headers]') _hg_mergetool_opts=( - '(--tool -t)'{-t+,--tool=}'[specify merge tool]:tool:') + '(--tool -t)'{-t+,--tool=}'[specify merge tool]:merge tool' +) _hg_dryrun_opts=( '(--dry-run -n)'{-n,--dry-run}'[do not perform actions, just print output]') @@ -422,7 +425,9 @@ _hg_ignore_space_opts=( '(--ignore-all-space -w)'{-w,--ignore-all-space}'[ignore white space when comparing lines]' '(--ignore-space-change -b)'{-b,--ignore-space-change}'[ignore changes in the amount of white space]' - '(--ignore-blank-lines -B)'{-B,--ignore-blank-lines}'[ignore changes whose lines are all blank]') + '(--ignore-blank-lines -B)'{-B,--ignore-blank-lines}'[ignore changes whose lines are all blank]' + '(--ignore-space-at-eol -Z)'{-Z,--ignore-space-at-eol}'[ignore changes in whitespace at EOL]' +) _hg_template_opts=( '--template[display with template]:template' @@ -430,20 +435,23 @@ _hg_log_opts=( $_hg_global_opts $_hg_template_opts $_hg_gitlike_opts - '(--limit -l)'{-l+,--limit=}'[limit number of changes displayed]:' + '(--limit -l)'{-l+,--limit=}'[limit number of changes displayed]:limit' '(--no-merges -M)'{-M,--no-merges}'[do not show merges]' '(--patch -p)'{-p,--patch}'[show patch]' '--stat[output diffstat-style summary of changes]' + '(--graph -G)'{-G,--graph}'[show the revision DAG]' ) _hg_commit_opts=( '(-m --message -l --logfile --edit -e)'{-e,--edit}'[edit commit message]' - '(-e --edit -l --logfile --message -m)'{-m+,--message=}'[use <text> as commit message]:message:' + '(-e --edit -l --logfile --message -m)'{-m+,--message=}'[use <text> as commit message]:message' '(-e --edit -m --message --logfile -l)'{-l+,--logfile=}'[read the commit message from <file>]:log file:_files') _hg_remote_opts=( - '(--ssh -e)'{-e+,--ssh=}'[specify ssh command to use]:' - '--remotecmd[specify hg command to run on the remote side]:') + '(--ssh -e)'{-e+,--ssh=}'[specify ssh command to use]:command' + '--remotecmd=[specify hg command to run on the remote side]:remote command' + '--insecure[do not verify server certificate (ignoring web.cacerts config)]' +) _hg_branch_bmark_opts=( '(--bookmark -B)'{-B+,--bookmark=}'[specify bookmark(s)]:bookmark:_hg_bookmarks' @@ -464,26 +472,28 @@ _hg_cmd_addremove() { _arguments -s -S : $_hg_global_opts $_hg_pat_opts $_hg_dryrun_opts \ - '(--similarity -s)'{-s+,--similarity=}'[guess renamed files by similarity (0<=s<=100)]:' \ + '(--similarity -s)'{-s+,--similarity=}'[guess renamed files by similarity (0<=s<=100)]:similarity' \ '*:unknown or missing files:_hg_addremove' } _hg_cmd_annotate() { - _arguments -s -S : $_hg_global_opts $_hg_pat_opts \ + _arguments -s -S : $_hg_global_opts $_hg_ignore_space_opts $_hg_pat_opts \ '(--rev -r)'{-r+,--rev=}'[annotate the specified revision]:revision:_hg_labels' \ - '(--follow -f)'{-f,--follow}'[follow file copies and renames]' \ + "--no-follow[don't follow copies and renames]" \ '(--text -a)'{-a,--text}'[treat all files as text]' \ - '(--user -u)'{-u,--user}'[list the author]' \ - '(--date -d)'{-d,--date}'[list the date]' \ + '(--user -u)'{-u,--user}'[list the author (long with -v)]' \ + '(--file -f)'{-f,--file}'[list the filename]' \ + '(--date -d)'{-d,--date}'[list the date (short with -q)]' \ '(--number -n)'{-n,--number}'[list the revision number (default)]' \ '(--changeset -c)'{-c,--changeset}'[list the changeset]' \ + '(--line-number -l)'{-l,--line-number}'[show line number at the first appearance]' \ '*:files:_hg_files' } _hg_cmd_archive() { _arguments -s -S : $_hg_global_opts $_hg_pat_opts $_hg_subrepos_opts \ '--no-decode[do not pass files through decoders]' \ - '(--prefix -p)'{-p+,--prefix=}'[directory prefix for files in archive]:' \ + '(--prefix -p)'{-p+,--prefix=}'[directory prefix for files in archive]:prefix' \ '(--rev -r)'{-r+,--rev=}'[revision to distribute]:revision:_hg_labels' \ '(--type -t)'{-t+,--type=}'[type of distribution to create]:archive type:(files tar tbz2 tgz uzip zip)' \ '*:destination:_files' @@ -492,12 +502,13 @@ _hg_cmd_backout() { _arguments -s -S : $_hg_global_opts $_hg_mergetool_opts $_hg_pat_opts \ '--merge[merge with old dirstate parent after backout]' \ - '(--date -d)'{-d+,--date=}'[record datecode as commit date]:date code:' \ + '(--date -d)'{-d+,--date=}'[record the specified date as commit date]:date' \ '--parent[parent to choose when backing out merge]' \ - '(--user -u)'{-u+,--user=}'[record user as commiter]:user:' \ - '(--rev -r)'{-r+,--rev=}'[revision]:revision:_hg_labels' \ - '(--message -m)'{-m+,--message=}'[use <text> as commit message]:text:' \ - '(--logfile -l)'{-l+,--logfile=}'[read commit message from <file>]:log file:_files' + '(--user -u)'{-u+,--user=}'[record the specified user as committer]:user' \ + '(--rev -r 1)'{-r+,--rev=}'[revision to backout]:revision:_hg_labels' \ + '(--message -m)'{-m+,--message=}'[use <text> as commit message]:text' \ + '(--logfile -l)'{-l+,--logfile=}'[read commit message from <file>]:log file:_files' \ + ':revision:_hg_labels' } _hg_cmd_bisect() { @@ -529,24 +540,24 @@ _hg_cmd_branches() { _arguments -s -S : $_hg_global_opts \ - '(--active -a)'{-a,--active}'[show only branches that have unmerge heads]' \ '(--closed -c)'{-c,--closed}'[show normal and closed branches]' } _hg_cmd_bundle() { _arguments -s -S : $_hg_global_opts $_hg_remote_opts \ - '(--force -f)'{-f,--force}'[run even when remote repository is unrelated]' \ - '(2)*--base[a base changeset to specify instead of a destination]:revision:_hg_labels' \ - '(--branch -b)'{-b+,--branch=}'[a specific branch to bundle]:' \ - '(--rev -r)'{-r+,--rev=}'[changeset(s) to bundle]:' \ + '(--force -f)'{-f,--force}'[run even when the destination is unrelated]' \ + '(2)*--base[a base changeset assumed to be available at the destination]:revision:_hg_labels' \ + '*'{-b+,--branch=}'[a specific branch you would like to bundle]:branch:_hg_branches' \ + '*'{-r+,--rev=}'[a changeset intended to be added to the destination]:revision:_hg_labels' \ '--all[bundle all changesets in the repository]' \ + '--type[bundle compression type to use (default: bzip2)]:bundle type' \ ':output file:_files' \ ':destination repository:_files -/' } _hg_cmd_cat() { _arguments -s -S : $_hg_global_opts $_hg_pat_opts \ - '(--output -o)'{-o+,--output=}'[print output to file with formatted name]:filespec:' \ + '(--output -o)'{-o+,--output=}'[print output to file with formatted name]:format string' \ '(--rev -r)'{-r+,--rev=}'[revision]:revision:_hg_labels' \ '--decode[apply any matching decode filter]' \ '*:file:_hg_files' @@ -554,9 +565,9 @@ _hg_cmd_clone() { _arguments -s -S : $_hg_global_opts $_hg_clone_opts \ - '(--rev -r)'{-r+,--rev=}'[a changeset you would like to have after cloning]:' \ - '(--updaterev -u)'{-u+,--updaterev=}'[revision, tag or branch to check out]:' \ - '(--branch -b)'{-b+,--branch=}'[clone only the specified branch]:' \ + '*'{-r+,--rev=}'[do not clone everything, but include this changeset and its ancestors]:revision' \ + '(--updaterev -u)'{-u+,--updaterev=}'[revision, tag or branch to check out]:revision' \ + '*'{-b+,--branch=}"[do not clone everything, but include this branch's changesets and their ancestors]:branch" \ ':source repository:_hg_remote' \ ':destination:_hg_clone_dest' } @@ -564,12 +575,14 @@ _hg_cmd_commit() { _arguments -s -S : $_hg_global_opts $_hg_pat_opts $_hg_subrepos_opts \ '(--addremove -A)'{-A,--addremove}'[mark new/missing files as added/removed before committing]' \ - '(--message -m)'{-m+,--message=}'[use <text> as commit message]:text:' \ + '(--message -m)'{-m+,--message=}'[use <text> as commit message]:text' \ '(--logfile -l)'{-l+,--logfile=}'[read commit message from <file>]:log file:_files' \ - '(--date -d)'{-d+,--date=}'[record datecode as commit date]:date code:' \ - '(--user -u)'{-u+,--user=}'[record user as commiter]:user:' \ - '--amend[amend the parent of the working dir]' \ - '--close-branch[mark a branch as closed]' \ + '(--date -d)'{-d+,--date=}'[record the specified date as commit date]:date' \ + '(--user -u)'{-u+,--user=}'[record the specified user as committer]:user' \ + '--amend[amend the parent of the working directory]' \ + '--close-branch[mark a branch head as closed]' \ + '(--interactive -i)'{-i,--interactive}'[use interactive mode]' \ + '(--secret -s)'{-s,--secret}'[use the secret phase for committing]' \ '*:file:_hg_committable' } @@ -587,12 +600,14 @@ _arguments -s -S : $_hg_global_opts $_hg_diff_opts $_hg_ignore_space_opts \ $_hg_pat_opts $_hg_subrepos_opts \ '*'{-r+,--rev=}'[revision]:revision:_hg_revrange' \ + '--noprefix[omit a/ and b/ prefixes from filenames]' \ '(--show-function -p)'{-p,--show-function}'[show which function each change is in]' \ - '(--change -c)'{-c+,--change=}'[change made by revision]:' \ + '(--change -c)'{-c+,--change=}'[change made by revision]:revision:_hg_labels' \ '(--text -a)'{-a,--text}'[treat all files as text]' \ '--reverse[produce a diff that undoes the changes]' \ - '(--unified -U)'{-U+,--unified=}'[number of lines of context to show]:' \ + '(--unified -U)'{-U+,--unified=}'[number of lines of context to show]:count' \ '--stat[output diffstat-style summary of changes]' \ + '--root=[produce diffs relative to subdirectory]:directory:_files -/' \ '*:file:->diff_files' && ret=0 if [[ $state == 'diff_files' ]] @@ -610,21 +625,24 @@ _hg_cmd_export() { _arguments -s -S : $_hg_global_opts $_hg_diff_opts \ - '(--outout -o)'{-o+,--output=}'[print output to file with formatted name]:filespec:' \ + '(--output -o)'{-o+,--output=}'[print output to file with formatted name]:format string' \ '--switch-parent[diff against the second parent]' \ - '(--rev -r)'{-r+,--rev=}'[revision]:revision:_hg_labels' \ + '*'{-r+,--rev=}'[revisions to export]:revision:_hg_labels' \ '*:revision:_hg_labels' } _hg_cmd_forget() { - _arguments -s -S : $_hg_global_opts \ + _arguments -s -S : $_hg_global_opts $_hg_pat_opts $_hg_dryrun_opts \ + '(--interactive -i)'{-i,--interactive}'[use interactive mode]' \ '*:file:_hg_files' } _hg_cmd_graft() { _arguments -s -S : $_hg_global_opts $_hg_dryrun_opts \ $_hg_date_user_opts $_hg_mergetool_opts \ - '(--continue -c)'{-c,--continue}'[resume interrupted graft]' \ + '*'{-r+,--rev=}'[revisions to graft]:revision:_hg_labels' \ + '(--continue -c --abort -a)'{-c,--continue}'[resume interrupted graft]' \ + '(--continue -c --abort -a)'{-a,--abort}'[abort interrupted graft]' \ '(--edit -e)'{-e,--edit}'[invoke editor on commit messages]' \ '--log[append graft info to log message]' \ '*:revision:_hg_labels' @@ -656,7 +674,7 @@ _arguments -s -S : $_hg_global_opts \ '(--extension -e)'{-e,--extension}'[show only help for extensions]' \ '(--command -c)'{-c,--command}'[show only help for commands]' \ - '(--keyword -k)'{-k+,--keyword}'[show topics matching keyword]' \ + '(--keyword -k)'{-k,--keyword}'[show topics matching keyword]' \ '*:mercurial help topic:_hg_help_topics' } @@ -666,22 +684,22 @@ '(--num -n)'{-n,--num}'[show local revision number]' \ '(--id -i)'{-i,--id}'[show global revision id]' \ '(--branch -b)'{-b,--branch}'[show branch]' \ - '(--bookmark -B)'{-B,--bookmark}'[show bookmarks]' \ + '(--bookmarks -B)'{-B,--bookmarks}'[show bookmarks]' \ '(--tags -t)'{-t,--tags}'[show tags]' } _hg_cmd_import() { _arguments -s -S : $_hg_global_opts $_hg_commit_opts \ - '(--strip -p)'{-p+,--strip=}'[directory strip option for patch (default: 1)]:count:' \ + '(--strip -p)'{-p+,--strip=}'[directory strip option for patch (default: 1)]:count' \ '(--force -f)'{-f,--force}'[skip check for outstanding uncommitted changes]' \ '--bypass[apply patch without touching the working directory]' \ '--no-commit[do not commit, just update the working directory]' \ '--partial[commit even if some hunks fail]' \ - '--exact[apply patch to the nodes from which it was generated]' \ + '--exact[abort if patch would apply lossily]' \ '--import-branch[use any branch information in patch (implied by --exact)]' \ - '(--date -d)'{-d+,--date=}'[record datecode as commit date]:date code:' \ - '(--user -u)'{-u+,--user=}'[record user as commiter]:user:' \ - '(--similarity -s)'{-s+,--similarity=}'[guess renamed files by similarity (0<=s<=100)]:' \ + '(--date -d)'{-d+,--date=}'[record the specified date as commit date]:date' \ + '(--user -u)'{-u+,--user=}'[record the specified user as committer]:user' \ + '(--similarity -s)'{-s+,--similarity=}'[guess renamed files by similarity (0<=s<=100)]:similarity' \ '*:patch:_files' } @@ -689,7 +707,7 @@ _arguments -s -S : $_hg_log_opts $_hg_branch_bmark_opts $_hg_remote_opts \ $_hg_subrepos_opts \ '(--force -f)'{-f,--force}'[run even when the remote repository is unrelated]' \ - '(--rev -r)'{-r+,--rev=}'[a specific revision up to which you would like to pull]:revision:_hg_labels' \ + '*'{-r+,--rev=}'[a remote changeset intended to be added]:revision:_hg_labels' \ '(--newest-first -n)'{-n,--newest-first}'[show newest record first]' \ '--bundle[file to store the bundles into]:bundle file:_files' \ ':source:_hg_remote' @@ -704,7 +722,7 @@ _arguments -s -S : $_hg_global_opts $_hg_pat_opts \ '(--rev -r)'{-r+,--rev=}'[search repository as it stood at revision]:revision:_hg_labels' \ '(--print0 -0)'{-0,--print0}'[end filenames with NUL, for use with xargs]' \ - '(--fullpath -f)'{-f,--fullpath}'[print complete paths]' \ + '(--fullpath -f)'{-f,--fullpath}'[print complete paths from the filesystem root]' \ '*:search pattern:_hg_files' } @@ -713,14 +731,13 @@ '(--follow --follow-first -f)'{-f,--follow}'[follow changeset or history]' \ '(-f --follow)--follow-first[only follow the first parent of merge changesets]' \ '(--copies -C)'{-C,--copies}'[show copied files]' \ - '(--keyword -k)'{-k+,--keyword}'[search for a keyword]:' \ + '*'{-k+,--keyword=}'[search for a keyword]:keyword' \ '*'{-r+,--rev=}'[show the specified revision or revset]:revision:_hg_revrange' \ '(--only-merges -m)'{-m,--only-merges}'[show only merges]' \ - '(--prune -P)'{-P+,--prune=}'[do not display revision or any of its ancestors]:revision:_hg_labels' \ - '(--graph -G)'{-G,--graph}'[show the revision DAG]' \ - '(--branch -b)'{-b+,--branch=}'[show changesets within the given named branch]:branch:_hg_branches' \ - '(--user -u)'{-u+,--user=}'[revisions committed by user]:user:' \ - '(--date -d)'{-d+,--date=}'[show revisions matching date spec]:date:' \ + '*'{-P+,--prune=}'[do not display revision or any of its ancestors]:revision:_hg_labels' \ + '*'{-b+,--branch=}'[show changesets within the given named branch]:branch:_hg_branches' \ + '*'{-u+,--user=}'[revisions committed by user]:user' \ + '(--date -d)'{-d+,--date=}'[show revisions matching date spec]:date' \ '*:files:_hg_files' } @@ -742,8 +759,8 @@ _hg_cmd_outgoing() { _arguments -s -S : $_hg_log_opts $_hg_branch_bmark_opts $_hg_remote_opts \ $_hg_subrepos_opts \ - '(--force -f)'{-f,--force}'[run even when the remote repository is unrelated]' \ - '*'{-r+,--rev=}'[a specific revision you would like to push]:revision:_hg_revrange' \ + '(--force -f)'{-f,--force}'[run even when the destination is unrelated]' \ + '*'{-r+,--rev=}'[a changeset intended to be included in the destination]:revision:_hg_revrange' \ '(--newest-first -n)'{-n,--newest-first}'[show newest record first]' \ ':destination:_hg_remote' } @@ -761,34 +778,34 @@ _hg_cmd_phase() { _arguments -s -S : $_hg_global_opts \ - '(--public -p)'{-p,--public}'[set changeset phase to public]' \ - '(--draft -d)'{-d,--draft}'[set changeset phase to draft]' \ - '(--secret -s)'{-s,--secret}'[set changeset phase to secret]' \ + '(--public -p --draft -d --secret -s)'{-p,--public}'[set changeset phase to public]' \ + '(--public -p --draft -d --secret -s)'{-d,--draft}'[set changeset phase to draft]' \ + '(--public -p --draft -d --secret -s)'{-s,--secret}'[set changeset phase to secret]' \ '(--force -f)'{-f,--force}'[allow to move boundary backward]' \ - '(--rev -r)'{-r+,--rev=}'[target revision]:revision:_hg_labels' \ - ':revision:_hg_labels' + '*'{-r+,--rev=}'[target revision]:revision:_hg_labels' \ + '*:revision:_hg_labels' } _hg_cmd_pull() { _arguments -s -S : $_hg_global_opts $_hg_branch_bmark_opts $_hg_remote_opts \ '(--force -f)'{-f,--force}'[run even when the remote repository is unrelated]' \ - '(--update -u)'{-u,--update}'[update to new tip if changesets were pulled]' \ - '(--rev -r)'{-r+,--rev}'[a specific revision up to which you would like to pull]:revision:' \ + '(--update -u)'{-u,--update}'[update to new branch head if new descendants were pulled]' \ + '*'{-r+,--rev=}'[a remote changeset intended to be added]:revision:_hg_labels' \ ':source:_hg_remote' } _hg_cmd_push() { _arguments -s -S : $_hg_global_opts $_hg_branch_bmark_opts $_hg_remote_opts \ '(--force -f)'{-f,--force}'[force push]' \ - '(--rev -r)'{-r+,--rev=}'[a specific revision you would like to push]:revision:_hg_labels' \ + '*'{-r+,--rev=}'[a changeset intended to be included in the destination]:revision:_hg_labels' \ '--new-branch[allow pushing a new branch]' \ ':destination:_hg_remote' } _hg_cmd_remove() { - _arguments -s -S : $_hg_global_opts $_hg_pat_opts \ - '(--after -A)'{-A,--after}'[record remove that has already occurred]' \ - '(--force -f)'{-f,--force}'[remove file even if modified]' \ + _arguments -s -S : $_hg_global_opts $_hg_pat_opts $_hg_dryrun_opts \ + '(--after -A)'{-A,--after}'[record delete for missing files]' \ + '(--force -f)'{-f,--force}'[forget added files, delete modified files]' \ '*:file:_hg_files' } @@ -808,7 +825,7 @@ '(--no-status -n)'{-n,--no-status}'[hide status prefix]' \ '(--list -l --mark -m --unmark -u)'{-l,--list}'[list state of files needing merge]:*:merged files:->resolve_files' \ '(--mark -m --list -l --unmark -u)'{-m,--mark}'[mark files as resolved]:*:unresolved files:_hg_unresolved' \ - '(--unmark -u --list -l --mark -m)'{-u,--unmark}'[unmark files as resolved]:*:resolved files:_hg_resolved' \ + '(--unmark -u --list -l --mark -m)'{-u,--unmark}'[mark files as unresolved]:*:resolved files:_hg_resolved' \ '*:file:_hg_unresolved' && ret=0 if [[ $state == 'resolve_files' ]] @@ -828,7 +845,8 @@ '(--all -a :)'{-a,--all}'[revert all changes when no arguments given]' \ '(--rev -r)'{-r+,--rev=}'[revision to revert to]:revision:_hg_labels' \ '(--no-backup -C)'{-C,--no-backup}'[do not save backup copies of files]' \ - '(--date -d)'{-d+,--date=}'[tipmost revision matching date]:date code:' \ + '(--date -d)'{-d+,--date=}'[tipmost revision matching date]:date' \ + '(--interactive -i)'{-i,--interactive}'[interactively select the changes]' \ '*:file:->revert_files' && ret=0 if [[ $state == 'revert_files' ]] @@ -853,27 +871,31 @@ _hg_cmd_serve() { _arguments -s -S : $_hg_global_opts \ - '(--accesslog -A)'{-A+,--accesslog=}'[name of access log file]:log file:_files' \ - '(--errorlog -E)'{-E+,--errorlog=}'[name of error log file]:log file:_files' \ + '(--accesslog -A)'{-A+,--accesslog=}'[name of access log file to write to]:log file:_files' \ + '(--errorlog -E)'{-E+,--errorlog=}'[name of error log file to write to]:log file:_files' \ '(--daemon -d)'{-d,--daemon}'[run server in background]' \ - '(--port -p)'{-p+,--port=}'[listen port]:listen port:' \ - '(--address -a)'{-a+,--address=}'[interface address]:interface address:' \ - '--prefix[prefix path to serve from]:directory:_files' \ - '(--name -n)'{-n+,--name=}'[name to show in web pages]:repository name:' \ - '--web-conf[name of the hgweb config file]:webconf_file:_files' \ - '--pid-file[name of file to write process ID to]:pid_file:_files' \ - '--cmdserver[cmdserver mode]:mode:' \ - '(--templates -t)'{-t,--templates}'[web template directory]:template dir:_files -/' \ - '--style[web template style]:style' \ + '(--port -p)'{-p+,--port=}'[port to listen on (default: 8000)]:listen port' \ + '(--address -a)'{-a+,--address=}'[address to listen on (default: all interfaces)]:interface address' \ + '--prefix=[prefix path to serve from (default: server root)]:directory:_files' \ + '(--name -n)'{-n+,--name=}'[name to show in web pages (default: working directory)]:repository name' \ + '--web-conf=[name of the hgweb config file]:config file:_files' \ + '--pid-file=[name of file to write process ID to]:pid file:_files' \ + '--cmdserver[for remote clients]' \ + '(--templates -t)'{-t+,--templates=}'[web template directory]:template dir:_files -/' \ + '--style=[template style to use]:style' \ '--stdio[for remote clients]' \ - '--certificate[certificate file]:cert_file:_files' \ - '(--ipv6 -6)'{-6,--ipv6}'[use IPv6 in addition to IPv4]' + '(--ipv6 -6)'{-6,--ipv6}'[use IPv6 in addition to IPv4]' \ + '--certificate=[SSL certificate file]:certificate file:_files' \ + '--print-url[start and print only the URL]' } _hg_cmd_showconfig() { _arguments -s -S : $_hg_global_opts \ '(--untrusted -u)'{-u,--untrusted}'[show untrusted configuration options]' \ - ':config item:_hg_config' + '(--edit -e)'{-e,--edit}'[edit user config]' \ + '(--local -l --global -g)'{-l,--local}'[edit repository config]' \ + '(--local -l --global -g)'{-g,--global}'[edit global config]' \ + '*:config item:_hg_config' } _hg_cmd_status() { @@ -884,13 +906,13 @@ '(--removed -r)'{-r,--removed}'[show only removed files]' \ '(--deleted -d)'{-d,--deleted}'[show only deleted (but tracked) files]' \ '(--clean -c)'{-c,--clean}'[show only files without changes]' \ - '(--unknown -u)'{-u,--unknown}'[show only unknown files]' \ + '(--unknown -u)'{-u,--unknown}'[show only unknown (not tracked) files]' \ '(--ignored -i)'{-i,--ignored}'[show ignored files]' \ '(--no-status -n)'{-n,--no-status}'[hide status prefix]' \ '(--copies -C)'{-C,--copies}'[show source of copied files]' \ '(--print0 -0)'{-0,--print0}'[end filenames with NUL, for use with xargs]' \ - '--rev[show difference from revision]:revision:_hg_labels' \ - '--change[list the changed files of a revision]:revision:_hg_labels' \ + '*--rev=[show difference from revision]:revision:_hg_labels' \ + '--change=[list the changed files of a revision]:revision:_hg_labels' \ '*:files:_files' } @@ -902,9 +924,9 @@ _hg_cmd_tag() { _arguments -s -S : $_hg_global_opts \ '(--local -l)'{-l,--local}'[make the tag local]' \ - '(--message -m)'{-m+,--message=}'[message for tag commit log entry]:message:' \ - '(--date -d)'{-d+,--date=}'[record datecode as commit date]:date code:' \ - '(--user -u)'{-u+,--user=}'[record user as commiter]:user:' \ + '(--message -m)'{-m+,--message=}'[message for tag commit log entry]:message' \ + '(--date -d)'{-d+,--date=}'[record the specified date as commit date]:date' \ + '(--user -u)'{-u+,--user=}'[record the specified user as committer]:user' \ '(--rev -r)'{-r+,--rev=}'[revision to tag]:revision:_hg_labels' \ '(--force -f)'{-f,--force}'[force tag]' \ '--remove[remove a tag]' \ @@ -920,15 +942,16 @@ _hg_cmd_unbundle() { _arguments -s -S : $_hg_global_opts \ '(--update -u)'{-u,--update}'[update to new tip if changesets were unbundled]' \ - ':files:_files' + '*:files:_files' } _hg_cmd_update() { - _arguments -s -S : $_hg_global_opts \ - '(--clean -C)'{-C,--clean}'[overwrite locally modified files]' \ - '(--rev -r)'{-r+,--rev=}'[revision]:revision:_hg_labels' \ - '(--check -c)'{-c,--check}'[update across branches if no uncommitted changes]' \ - '(--date -d)'{-d+,--date=}'[tipmost revision matching date]:' \ + _arguments -s -S : $_hg_global_opts $_hg_mergetool_opts \ + '(--clean -C)'{-C,--clean}'[discard uncommitted changes (no backup)]' \ + '(--check -c)'{-c,--check}'[require clean working directory]' \ + '(--merge -m)'{-m,--merge}'[merge uncommitted changes]' \ + '(--date -d)'{-d+,--date=}'[tipmost revision matching date]:date' \ + '(--rev -r 1)'{-r+,--rev=}'[revision]:revision:_hg_labels' \ ':revision:_hg_labels' } @@ -937,7 +960,7 @@ # HGK _hg_cmd_view() { _arguments -s -S : $_hg_global_opts \ - '(--limit -l)'{-l+,--limit=}'[limit number of changes displayed]:' \ + '(--limit -l)'{-l+,--limit=}'[limit number of changes displayed]:limit' \ ':revision range:_hg_labels' } @@ -1024,7 +1047,7 @@ _hg_cmd_qfold() { _arguments -s -S : $_hg_global_opts $_h_commit_opts \ - '(--keep,-k)'{-k,--keep}'[keep folded patch files]' \ + '(--keep -k)'{-k,--keep}'[keep folded patch files]' \ '(--force -f)'{-f,--force}'[overwrite any local changes]' \ '--no-backup[do not save backup copies of files]' \ '*:unapplied patch:_hg_qunapplied' @@ -1053,7 +1076,7 @@ _hg_cmd_qimport() { _arguments -s -S : $_hg_global_opts $_hg_gitlike_opts \ '(--existing -e)'{-e,--existing}'[import file in patch dir]' \ - '(--name -n 2)'{-n+,--name}'[patch file name]:name:' \ + '(--name -n 2)'{-n+,--name}'[patch file name]:name' \ '(--force -f)'{-f,--force}'[overwrite existing files]' \ '*'{-r+,--rev=}'[place existing revisions under mq control]:revision:_hg_revrange' \ '(--push -P)'{-P,--push}'[qpush after importing]' \ @@ -1131,12 +1154,12 @@ _hg_cmd_strip() { _arguments -s -S : $_hg_global_opts \ - '(--force -f)'{-f,--force}'[force removal, discard uncommitted changes, no backup]' \ - '(--no-backup -n)'{-n,--no-backup}'[no backups]' \ - '(--keep -k)'{-k,--keep}'[do not modify working copy during strip]' \ - '(--bookmark -B)'{-B+,--bookmark=}'[remove revs only reachable from given bookmark]:bookmark:_hg_bookmarks' \ - '(--rev -r)'{-r+,--rev=}'[revision]:revision:_hg_labels' \ - ':revision:_hg_labels' + '(--force -f)'{-f,--force}'[force removal of changesets, discard uncommitted changes (no backup)]' \ + '--no-backup[no backups]' \ + '(--keep -k)'{-k,--keep}'[do not modify working directory during strip]' \ + '*'{-B+,--bookmark=}'[remove revs only reachable from given bookmark]:bookmark:_hg_bookmarks' \ + '*'{-r+,--rev=}'[revision]:revision:_hg_labels' \ + '*:revision:_hg_labels' } # Patchbomb @@ -1149,23 +1172,23 @@ '--bundlename[name of the bundle attachment file (default: bundle)]:' \ '*'{-r+,--rev=}'[search in given revision range]:revision:_hg_revrange' \ '--force[run even when remote repository is unrelated (with -b/--bundle)]' \ - '*--base[a base changeset to specify instead of a destination (with -b/--bundle)]:revision:_hg_labels' \ + '*--base=[a base changeset to specify instead of a destination (with -b/--bundle)]:revision:_hg_labels' \ '--intro[send an introduction email for a single patch]' \ '(--inline -i --attach -a)'{-a,--attach}'[send patches as attachments]' \ '(--attach -a --inline -i)'{-i,--inline}'[send patches as inline attachments]' \ - '*--bcc[email addresses of blind carbon copy recipients]:email:' \ - '*'{-c+,--cc}'[email addresses of copy recipients]:email:' \ + '*--bcc=[email addresses of blind carbon copy recipients]:email' \ + '*'{-c+,--cc=}'[email addresses of copy recipients]:email' \ '(--diffstat -d)'{-d,--diffstat}'[add diffstat output to messages]' \ - '--date[use the given date as the sending date]:date:' \ - '--desc[use the given file as the series description]:files:_files' \ - '(--from -f)'{-f,--from}'[email address of sender]:email:' \ + '--date=[use the given date as the sending date]:date' \ + '--desc=[use the given file as the series description]:files:_files' \ + '(--from -f)'{-f+,--from=}'[email address of sender]:email' \ '(--test -n)'{-n,--test}'[print messages that would be sent]' \ - '(--mbox -m)'{-m,--mbox}'[write messages to mbox file instead of sending them]:file:' \ - '*--reply-to[email addresses replies should be sent to]:email:' \ - '(--subject -s)'{-s,--subject}'[subject of first message (intro or single patch)]:subject:' \ - '--in-reply-to[message identifier to reply to]:msgid:' \ - '*--flag[flags to add in subject prefixes]:flag:' \ - '*'{-t,--to}'[email addresses of recipients]:email:' \ + '(--mbox -m)'{-m+,--mbox=}'[write messages to mbox file instead of sending them]:file:_files' \ + '*--reply-to=[email addresses replies should be sent to]:email' \ + '(--subject -s)'{-s+,--subject=}'[subject of first message (intro or single patch)]:subject' \ + '--in-reply-to=[message identifier to reply to]:msgid' \ + '*--flag=[flags to add in subject prefixes]:flag' \ + '*'{-t+,--to=}'[email addresses of recipients]:email' \ ':revision:_hg_revrange' } @@ -1173,14 +1196,14 @@ _hg_cmd_rebase() { _arguments -s -S : $_hg_global_opts $_hg_commit_opts $_hg_mergetool_opts \ '*'{-r+,--rev=}'[rebase these revisions]:revision:_hg_revrange' \ - '(--source -s)'{-s+,--source=}'[rebase from the specified changeset]:revision:_hg_labels' \ - '(--base -b)'{-b+,--base=}'[rebase from the base of the specified changeset]:revision:_hg_labels' \ + '(--source -s --base -b)'{-s+,--source=}'[rebase the specified changeset and descendants]:revision:_hg_labels' \ + '(--source -s --base -b)'{-b+,--base=}'[rebase everything from branching point of specified changeset]:revision:_hg_labels' \ '(--dest -d)'{-d+,--dest=}'[rebase onto the specified changeset]:revision:_hg_labels' \ - '--collapse[collapse the rebased changeset]' \ - '--keep[keep original changeset]' \ - '--keepbranches[keep original branch name]' \ - '(--continue -c)'{-c,--continue}'[continue an interrupted rebase]' \ - '(--abort -a)'{-a,--abort}'[abort an interrupted rebase]' \ + '--collapse[collapse the rebased changesets]' \ + '(--keep -k)'{-k,--keep}'[keep original changesets]' \ + '--keepbranches[keep original branch names]' \ + '(--continue -c --abort -a)'{-c,--continue}'[continue an interrupted rebase]' \ + '(--continue -c --abort -a)'{-a,--abort}'[abort an interrupted rebase]' \ } # Record @@ -1190,8 +1213,8 @@ '(--addremove -A)'{-A,--addremove}'[mark new/missing files as added/removed before committing]' \ '--close-branch[mark a branch as closed, hiding it from the branch list]' \ '--amend[amend the parent of the working dir]' \ - '(--date -d)'{-d+,--date=}'[record the specified date as commit date]:date:' \ - '(--user -u)'{-u+,--user=}'[record the specified user as committer]:user:' + '(--date -d)'{-d+,--date=}'[record the specified date as commit date]:date' \ + '(--user -u)'{-u+,--user=}'[record the specified user as committer]:user' } _hg_cmd_qrecord() { @@ -1202,16 +1225,18 @@ # Convert _hg_cmd_convert() { _arguments -s -S : $_hg_global_opts \ - '(--source-type -s)'{-s,--source-type}'[source repository type]' \ - '(--dest-type -d)'{-d,--dest-type}'[destination repository type]' \ - '(--rev -r)'{-r+,--rev=}'[import up to target revision]:revision:' \ + '(--source-type -s)'{-s+,--source-type=}'[source repository type]:type:(hg cvs darcs git svn mtn gnuarch bzr p4)' \ + '(--dest-type -d)'{-d+,--dest-type=}'[destination repository type]:type:(hg svn)' \ + '*'{-r+,--rev=}'[import up to target revision]:revision' \ '(--authormap -A)'{-A+,--authormap=}'[remap usernames using this file]:file:_files' \ - '--filemap[remap file names using contents of file]:file:_files' \ - '--splicemap[splice synthesized history into place]:file:_files' \ - '--branchmap[change branch names while converting]:file:_files' \ + '--filemap=[remap file names using contents of file]:file:_files' \ + '--full[apply filemap changes by converting all files again]' \ + '--splicemap=[splice synthesized history into place]:file:_files' \ + '--branchmap=[change branch names while converting]:file:_files' \ '--branchsort[try to sort changesets by branches]' \ '--datesort[try to sort changesets by date]' \ - '--sourcesort[preserve source changesets order]' + '--sourcesort[preserve source changesets order]' \ + '--closesort[try to reorder closed revisions]' } # Purge