comparison contrib/zsh_completion @ 3517:a6dd7ab568cc

zsh: make option lists more compact
author Brendan Cully <brendan@kublai.com>
date Wed, 25 Oct 2006 16:35:35 -0700
parents 060aefba4459
children ee6b8de6df3c
comparison
equal deleted inserted replaced
3516:54246ac4b652 3517:a6dd7ab568cc
3 # Zsh completion script for mercurial. Rename this file to _hg and copy 3 # Zsh completion script for mercurial. Rename this file to _hg and copy
4 # it into your zsh function path (/usr/share/zsh/site-functions for 4 # it into your zsh function path (/usr/share/zsh/site-functions for
5 # instance) 5 # instance)
6 # 6 #
7 # Copyright (C) 2005 Steve Borho 7 # Copyright (C) 2005 Steve Borho
8 # Copyright (C) 2006 Brendan Cully
8 # 9 #
9 # This is free software; you can redistribute it and/or modify it under 10 # This is free software; you can redistribute it and/or modify it under
10 # the terms of the GNU General Public License as published by the Free 11 # the terms of the GNU General Public License as published by the Free
11 # Software Foundation; either version 2 of the License, or (at your 12 # Software Foundation; either version 2 of the License, or (at your
12 # option) any later version. 13 # option) any later version.
112 done 113 done
113 } 114 }
114 115
115 _hg_commands() { 116 _hg_commands() {
116 (( $#_hg_cmd_list )) || _hg_get_commands 117 (( $#_hg_cmd_list )) || _hg_get_commands
117 _describe -t hg-commands 'Mercurial command' _hg_cmd_list 118 _describe -t hg-commands 'mercurial command' _hg_cmd_list
118 } 119 }
119 120
120 _hg_tags() { 121 _hg_tags() {
121 typeset -a tags 122 typeset -a tags
122 local tag rev 123 local tag rev
181 (( $#patches )) && _describe -t hg-unapplied-patches 'unapplied patches' patches 182 (( $#patches )) && _describe -t hg-unapplied-patches 'unapplied patches' patches
182 } 183 }
183 184
184 # Common options 185 # Common options
185 _hg_global_opts=( 186 _hg_global_opts=(
186 '(--repository)-R+[repository root directory]:repository:_files -/' 187 '(--repository -R)'{-R+,--repository}'[repository root directory]:repository:_files -/'
187 '(-R)--repository[repository root directory]:repository:_files -/'
188 '--cwd[change working directory]:new working directory:_files -/' 188 '--cwd[change working directory]:new working directory:_files -/'
189 '(--noninteractive)-y[do not prompt, assume yes for any required answers]' 189 '(--noninteractive -y)'{-y,--noninteractive}'[do not prompt, assume yes for any required answers]'
190 '(-y)--noninteractive[do not prompt, assume yes for any required answers]' 190 '(--verbose -v)'{-v,--verbose}'[enable additional output]'
191 '(--verbose)-v[enable additional output]' 191 '(--quiet -q)'{-q,--quiet}'[suppress output]'
192 '(-v)--verbose[enable additional output]' 192 '(--help -h)'{-h,--help}'[display help and exit]'
193 '(--quiet)-q[suppress output]'
194 '(-q)--quiet[suppress output]'
195 '(--help)-h[display help and exit]'
196 '(-h)--help[display help and exit]'
197 '--debug[debug mode]' 193 '--debug[debug mode]'
198 '--debugger[start debugger]' 194 '--debugger[start debugger]'
199 '--traceback[print traceback on exception]' 195 '--traceback[print traceback on exception]'
200 '--time[time how long the command takes]' 196 '--time[time how long the command takes]'
201 '--profile[profile]' 197 '--profile[profile]'
202 '--version[output version information and exit]' 198 '--version[output version information and exit]'
203 ) 199 )
204 200
205 _hg_pat_opts=( 201 _hg_pat_opts=(
206 '*-I+[include names matching the given patterns]:dir:_files -W $(_hg_cmd root) -/' 202 '*'{-I+,--include}'[include names matching the given patterns]:dir:_files -W $(_hg_cmd root) -/'
207 '*--include[include names matching the given patterns]:dir:_files -W $(_hg_cmd root) -/' 203 '*'{-X+,--exclude}'[exclude names matching the given patterns]:dir:_files -W $(_hg_cmd root) -/')
208 '*-X+[exclude names matching the given patterns]:dir:_files -W $(_hg_cmd root) -/'
209 '*--exclude[exclude names matching the given patterns]:dir:_files -W $(_hg_cmd root) -/')
210 204
211 _hg_diff_opts=( 205 _hg_diff_opts=(
212 '(--text)-a[treat all files as text]' 206 '(--text -a)'{-a,--text}'[treat all files as text]'
213 '(-a)--text[treat all files as text]' 207 '(--git -g)'{-g,--git}'[use git extended diff format]'
214 '(--git)-g[use git extended diff format]'
215 '(-g)--git[use git extended diff format]'
216 "--nodates[don't include dates in diff headers]") 208 "--nodates[don't include dates in diff headers]")
217 209
218 _hg_dryrun_opts=( 210 _hg_dryrun_opts=(
219 '(--dry-run)-n[do not perform actions, just print output]' 211 '(--dry-run -n)'{-n,--dry-run}'[do not perform actions, just print output]')
220 '(-n)--dry-run[do not perform actions, just print output]')
221 212
222 _hg_style_opts=( 213 _hg_style_opts=(
223 '--style[display using template map file]:' 214 '--style[display using template map file]:'
224 '--template[display with template]:') 215 '--template[display with template]:')
225 216
226 _hg_commit_opts=( 217 _hg_commit_opts=(
227 '(-m --message -l --logfile --edit)-e[edit commit message]' 218 '(-m --message -l --logfile --edit -e)'{-e,--edit}'[edit commit message]'
228 '(-m --message -l --logfile -e)--edit[edit commit message]' 219 '(-e --edit -l --logfile --message -m)'{-m+,--message}'[use <text> as commit message]:message:'
229 '(-e --edit -l --logfile --message)-m+[use <text> as commit message]:message:' 220 '(-e --edit -m --message --logfile -l)'{-l+,--logfile}'[read the commit message from <file>]:log file:_files')
230 '(-e --edit -l --logfile -m)--message[use <text> as commit message]:message:'
231 '(-e --edit -m --message --logfile)-l+[read the commit message from <file>]:log file:_files'
232 '(-e --edit -m --message -l)--logfile[read the commit message from <file>]:log file:_files')
233 221
234 _hg_remote_opts=( 222 _hg_remote_opts=(
235 '(--ssh)-e+[specify ssh command to use]:' 223 '(--ssh -e)'{-e+,--ssh}'[specify ssh command to use]:'
236 '(-e)--ssh[specify ssh command to use]:'
237 '--remotecmd[specify hg command to run on the remote side]:') 224 '--remotecmd[specify hg command to run on the remote side]:')
238 225
239 _hg_cmd() { 226 _hg_cmd() {
240 _call_program hg hg "$_hg_cmd_globals[@]" "$@" 227 _call_program hg hg "$_hg_cmd_globals[@]" "$@"
241 } 228 }
245 '*:unknown files:_hg_unknown' 232 '*:unknown files:_hg_unknown'
246 } 233 }
247 234
248 _hg_cmd_addremove() { 235 _hg_cmd_addremove() {
249 _arguments -s -w : $_hg_global_opts $_hg_pat_opts $_hg_dryrun_opts \ 236 _arguments -s -w : $_hg_global_opts $_hg_pat_opts $_hg_dryrun_opts \
250 '(--similarity)-s[guess renamed files by similarity (0<=s<=100)]:' \ 237 '(--similarity -s)'{-s+,--similarity}'[guess renamed files by similarity (0<=s<=100)]:' \
251 '(-s)--similarity[guess renamed files by similarity (0<=s<=100)]:' \
252 '*:unknown or missing files:_hg_addremove' 238 '*:unknown or missing files:_hg_addremove'
253 } 239 }
254 240
255 _hg_cmd_annotate() { 241 _hg_cmd_annotate() {
256 _arguments -s -w : $_hg_global_opts $_hg_pat_opts \ 242 _arguments -s -w : $_hg_global_opts $_hg_pat_opts \
257 '(--rev)-r+[annotate the specified revision]:revision:_hg_tags' \ 243 '(--rev -r)'{-r+,--rev}'[annotate the specified revision]:revision:_hg_tags' \
258 '(-r)--rev[annotate the specified revision]:revision:_hg_tags' \ 244 '(--follow -f)'{-f,--follow}'[follow file copies and renames]' \
259 '(--follow)-f[follow file copies and renames]' \ 245 '(--text -a)'{-a,--text}'[treat all files as text]' \
260 '(-f)--follow[follow file copies and renames]' \ 246 '(--user -u)'{-u,--user}'[list the author]' \
261 '(--text)-a[treat all files as text]' \ 247 '(--date -d)'{-d,--date}'[list the date]' \
262 '(-a)--text[treat all files as text]' \ 248 '(--number -n)'{-n,--number}'[list the revision number (default)]' \
263 '(--user)-u[list the author]' \ 249 '(--changeset -c)'{-c,--changeset}'[list the changeset]' \
264 '(-u)--user[list the author]' \
265 '(--date)-d[list the date]' \
266 '(-d)--date[list the date]' \
267 '(--number)-n[list the revision number (default)]' \
268 '(-n)--number[list the revision number (default)]' \
269 '(--changeset)-c[list the changeset]' \
270 '(-c)--changeset[list the changeset]' \
271 '*:files:_files -W $(_hg_cmd root)' 250 '*:files:_files -W $(_hg_cmd root)'
272 } 251 }
273 252
274 _hg_cmd_archive() { 253 _hg_cmd_archive() {
275 _arguments -s -w : $_hg_global_opts $_hg_pat_opts \ 254 _arguments -s -w : $_hg_global_opts $_hg_pat_opts \
276 '--no-decode[do not pass files through decoders]' \ 255 '--no-decode[do not pass files through decoders]' \
277 '(--prefix)-p+[directory prefix for files in archive]:' \ 256 '(--prefix -p)'{-p+,--prefix}'[directory prefix for files in archive]:' \
278 '(-p)--prefix[directory prefix for files in archive]:' \ 257 '(--rev -r)'{-r+,--rev}'[revision to distribute]:revision:_hg_tags' \
279 '(--rev)-r+[revision to distribute]:revision:_hg_tags' \ 258 '(--type -t)'{-t+,--type}'[type of distribution to create]:archive type:(files tar tbz2 tgz uzip zip)' \
280 '(-r)--rev[revision to distribute]:revision:_hg_tags' \
281 '(--type)-t+[type of distribution to create]:archive type:(files tar tbz2 tgz uzip zip)' \
282 '(-t)--type[type of distribution to create]:archive type:(files tar tbz2 tgz uzip zip)' \
283 '*:destination:_files' 259 '*:destination:_files'
284 } 260 }
285 261
286 _hg_cmd_bundle() { 262 _hg_cmd_bundle() {
287 _arguments -s -w : $_hg_global_opts $_hg_remote_opts \ 263 _arguments -s -w : $_hg_global_opts $_hg_remote_opts \
288 '(--force)-f[run even when remote repository is unrelated]' \ 264 '(--force -f)'{-f,--force}'[run even when remote repository is unrelated]' \
289 '(-f)--force[run even when remote repository is unrelated]' \
290 '(2)*--base[a base changeset to specify instead of a destination]:revision:_hg_tags' \ 265 '(2)*--base[a base changeset to specify instead of a destination]:revision:_hg_tags' \
291 ':output file:_files' \ 266 ':output file:_files' \
292 ':destination repository:_files -/' 267 ':destination repository:_files -/'
293 } 268 }
294 269
295 _hg_cmd_cat() { 270 _hg_cmd_cat() {
296 _arguments -s -w : $_hg_global_opts $_hg_pat_opts \ 271 _arguments -s -w : $_hg_global_opts $_hg_pat_opts \
297 '(--output)-o+[print output to file with formatted name]:filespec:' \ 272 '(--output -o)'{-o+,--output}'[print output to file with formatted name]:filespec:' \
298 '(-o)--output[print output to file with formatted name]:filespec:' \ 273 '(--rev -r)'{-r+,--rev}'[revision]:revision:_hg_tags' \
299 '(--rev)-r+[revision]:revision:_hg_tags' \
300 '(-r)--rev[revision]:revision:_hg_tags' \
301 '*:file:_files -W $(_hg_cmd root)' 274 '*:file:_files -W $(_hg_cmd root)'
302 } 275 }
303 276
304 _hg_cmd_clone() { 277 _hg_cmd_clone() {
305 _arguments -s -w : $_hg_global_opts $_hg_remote_opts \ 278 _arguments -s -w : $_hg_global_opts $_hg_remote_opts \
306 '(--noupdate)-U[do not update the new working directory]' \ 279 '(--noupdate -U)'{-U,--noupdate}'[do not update the new working directory]' \
307 '(-U)--noupdate[do not update the new working directory]' \ 280 '(--rev -r)'{-r+,--rev}'[a changeset you would like to have after cloning]:' \
308 '(--rev)-r+[a changeset you would like to have after cloning]:' \
309 '(-r)--rev[a changeset you would like to have after cloning]:' \
310 '--uncompressed[use uncompressed transfer (fast over LAN)]' \ 281 '--uncompressed[use uncompressed transfer (fast over LAN)]' \
311 ':source repository:_hg_remote' \ 282 ':source repository:_hg_remote' \
312 ':destination:_files -/' 283 ':destination:_files -/'
313 } 284 }
314 285
315 _hg_cmd_commit() { 286 _hg_cmd_commit() {
316 _arguments -s -w : $_hg_global_opts $_hg_pat_opts \ 287 _arguments -s -w : $_hg_global_opts $_hg_pat_opts \
317 '(--addremove)-A[mark new/missing files as added/removed before committing]' 288 '(--addremove -A)'{-A,--addremove}'[mark new/missing files as added/removed before committing]'
318 '(-A)--addremove[mark new/missing files as added/removed before committing]' 289 '(--message -m)'{-m+,--message}'[use <text> as commit message]:text:' \
319 '(--message)-m+[use <text> as commit message]:text:' \ 290 '(--logfile -l)'{-l+,--logfile}'[read commit message from <file>]:log file:_file -g \*.txt' \
320 '(-m)--message[use <text> as commit message]:text:' \ 291 '(--date -d)'{-d+,--date}'[record datecode as commit date]:date code:' \
321 '(--logfile)-l+[read commit message from <file>]:.log file:_file -g \*.txt' \ 292 '(--user -u)'{-u+,--user}'[record user as commiter]:user:' \
322 '(-l)--logfile[read commit message from <file>]:.log file:_file -g \*.txt' \
323 '(--date)-d+[record datecode as commit date]:date code:' \
324 '(-d)--date[record datecode as commit date]:date code:' \
325 '(--user)-u+[record user as commiter]:user:' \
326 '(-u)--user[record user as commiter]:user:' \
327 '*:file:_files -W $(_hg_cmd root)' 293 '*:file:_files -W $(_hg_cmd root)'
328 } 294 }
329 295
330 _hg_cmd_copy() { 296 _hg_cmd_copy() {
331 _arguments -s -w : $_hg_global_opts $_hg_pat_opts $_hg_dryrun_opts \ 297 _arguments -s -w : $_hg_global_opts $_hg_pat_opts $_hg_dryrun_opts \
332 '(--after)-A[record a copy that has already occurred]' \ 298 '(--after -A)'{-A,--after}'[record a copy that has already occurred]' \
333 '(-A)--after[record a copy that has already occurred]' \ 299 '(--force -f)'{-f,--force}'[forcibly copy over an existing managed file]' \
334 '(--force)-f[forcibly copy over an existing managed file]' \
335 '(-f)--force[forcibly copy over an existing managed file]' \
336 '*:file:_files -W $(_hg_cmd root)' 300 '*:file:_files -W $(_hg_cmd root)'
337 } 301 }
338 302
339 _hg_cmd_diff() { 303 _hg_cmd_diff() {
340 _arguments -s -w : $_hg_global_opts $_hg_pat_opts $_hg_diff_opts \ 304 _arguments -s -w : $_hg_global_opts $_hg_pat_opts $_hg_diff_opts \
341 '*'{-r,--rev}'+[revision]:revision:_hg_tags ' \ 305 '*'{-r,--rev}'+[revision]:revision:_hg_tags ' \
342 '(--show-function)-p[show which function each change is in]' \ 306 '(--show-function -p)'{-p,--show-function}'[show which function each change is in]' \
343 '(-p)--show-function[show which function each change is in]' \ 307 '(--ignore-all-space -w)'{-w,--ignore-all-space}'[ignore white space when comparing lines]' \
344 '(--ignore-all-space)-w[ignore white space when comparing lines]' \ 308 '(--ignore-space-change -b)'{-b,--ignore-space-change}'[ignore changes in the amount of white space]' \
345 '(-w)--ignore-all-space[ignore white space when comparing lines]' \ 309 '(--ignore-blank-lines -B)'{-B,--ignore-blank-lines}'[ignore changes whose lines are all blank]' \
346 '(--ignore-space-change)-b[ignore changes in the amount of white space]' \
347 '(-b)--ignore-space-change[ignore changes in the amount of white space]' \
348 '(--ignore-blank-lines)-B[ignore changes whose lines are all blank]' \
349 '(-B)--ignore-blank-lines[ignore changes whose lines are all blank]' \
350 '*:file:_files -W $(_hg_cmd root)' 310 '*:file:_files -W $(_hg_cmd root)'
351 } 311 }
352 312
353 _hg_cmd_export() { 313 _hg_cmd_export() {
354 _arguments -s -w : $_hg_global_opts $_hg_diff_opts \ 314 _arguments -s -w : $_hg_global_opts $_hg_diff_opts \
355 '(--outout)-o+[print output to file with formatted name]:filespec:' \ 315 '(--outout -o)'{-o+,--output}'[print output to file with formatted name]:filespec:' \
356 '(-o)--output[print output to file with formatted name]:filespec:' \
357 '--switch-parent[diff against the second parent]' \ 316 '--switch-parent[diff against the second parent]' \
358 '*:revision:_hg_tags' 317 '*:revision:_hg_tags'
359 } 318 }
360 319
361 _hg_cmd_grep() { 320 _hg_cmd_grep() {
362 _arguments -s -w : $_hg_global_opts $_hg_pat_opts \ 321 _arguments -s -w : $_hg_global_opts $_hg_pat_opts \
363 '(-print0)-0[end filenames with NUL]' \ 322 '(--print0 -0)'{-0,--print0}'[end filenames with NUL]' \
364 '(-0)--print0[end filenames with NUL]' \
365 '--all[print all revisions with matches]' \ 323 '--all[print all revisions with matches]' \
366 '(--follow)-f[follow changeset or file history]' \ 324 '(--follow -f)'{-f,--follow}'[follow changeset or file history]' \
367 '(-f)--follow[follow changeset or file history]' \ 325 '(--ignore-case -i)'{-i,--ignore-case}'[ignore case when matching]' \
368 '(--ignore-case)-i[ignore case when matching]' \ 326 '(--files-with-matches -l)'{-l,--files-with-matches}'[print only filenames and revs that match]' \
369 '(-i)--ignore-case[ignore case when matching]' \ 327 '(--line-number -n)'{-n,--line-number}'[print matching line numbers]' \
370 '(--files-with-matches)-l[print only filenames and revs that match]' \ 328 '*'{-r+,--rev}'[search in given revision range]:revision:_hg_tags' \
371 '(-l)--files-with-matches[print only filenames and revs that match]' \ 329 '(--user -u)'{-u,--user}'[print user who committed change]' \
372 '(--line-number)-n[print matching line numbers]' \
373 '(-n)--line-number[print matching line numbers]' \
374 '*-r+[search in given revision range]:revision:_hg_tags' \
375 '*--rev[search in given revision range]:revision:_hg_tags' \
376 '(--user)-u[print user who committed change]' \
377 '(-u)--user[print user who committed change]' \
378 '*:search pattern:_files -W $(_hg_cmd root)' 330 '*:search pattern:_files -W $(_hg_cmd root)'
379 } 331 }
380 332
381 _hg_cmd_heads() { 333 _hg_cmd_heads() {
382 _arguments -s -w : $_hg_global_opts $_hg_style_opts \ 334 _arguments -s -w : $_hg_global_opts $_hg_style_opts \
383 '(--rev)-r+[show only heads which are descendants of rev]:revision:_hg_tags' \ 335 '(--rev -r)'{-r+,--rev}'[show only heads which are descendants of rev]:revision:_hg_tags'
384 '(-r)--rev[show only heads which are descendants of rev]:revision:_hg_tags'
385 } 336 }
386 337
387 _hg_cmd_help() { 338 _hg_cmd_help() {
388 _arguments -s -w : $_hg_global_opts \ 339 _arguments -s -w : $_hg_global_opts \
389 '*:mercurial command:_hg_commands' 340 '*:mercurial command:_hg_commands'
390 } 341 }
391 342
392 _hg_cmd_import() { 343 _hg_cmd_import() {
393 _arguments -s -w : $_hg_global_opts \ 344 _arguments -s -w : $_hg_global_opts \
394 '(--strip)-p+[directory strip option for patch (default: 1)]:count:' \ 345 '(--strip -p)'{-p+,--strip}'[directory strip option for patch (default: 1)]:count:' \
395 '(-p)--strip[directory strip option for patch (default: 1)]:count:' \ 346 '(--message -m)'{-m+,--message}'[use <text> as commit message]:text:' \
396 '(--message)-m+[use <text> as commit message]:text:' \ 347 '(--force -f)'{-f,--force}'[skip check for outstanding uncommitted changes]' \
397 '(-m)--message[use <text> as commit message]:text:' \
398 '(--force)-f[skip check for outstanding uncommitted changes]' \
399 '(-f)--force[skip check for outstanding uncommitted changes]' \
400 '*:patch:_files' 348 '*:patch:_files'
401 } 349 }
402 350
403 _hg_cmd_incoming() { 351 _hg_cmd_incoming() {
404 _arguments -s -w : $_hg_global_opts $_hg_remote_opts $_hg_style_opts \ 352 _arguments -s -w : $_hg_global_opts $_hg_remote_opts $_hg_style_opts \
405 '(--no-merges)-M[do not show merge revisions]' \ 353 '(--no-merges -M)'{-M,--no-merges}'[do not show merge revisions]' \
406 '(-M)--no-merges[do not show merge revisions]' \ 354 '(--force -f)'{-f,--force}'[run even when the remote repository is unrelated]' \
407 '(--force)-f[run even when the remote repository is unrelated]' \ 355 '(--patch -p)'{-p,--patch}'[show patch]' \
408 '(-f)--force[run even when the remote repository is unrelated]' \ 356 '(--rev -r)'{-r+,--rev}'[a specific revision up to which you would like to pull]' \
409 '(--patch)-p[show patch]' \ 357 '(--newest-first -n)'{-n,--newest-first}'[show newest record first]' \
410 '(-p)--patch[show patch]' \
411 '(--rev)-r+[a specific revision up to which you would like to pull]' \
412 '(-r)--rev[a specific revision up to which you would like to pull]' \
413 '(--newest-first)-n[show newest record first]' \
414 '(-n)--newest-first[show newest record first]' \
415 '--bundle[file to store the bundles into]:bundle file:_files' \ 358 '--bundle[file to store the bundles into]:bundle file:_files' \
416 ':source:_hg_remote' 359 ':source:_hg_remote'
417 } 360 }
418 361
419 _hg_cmd_init() { 362 _hg_cmd_init() {
421 ':dir:_files -/' 364 ':dir:_files -/'
422 } 365 }
423 366
424 _hg_cmd_locate() { 367 _hg_cmd_locate() {
425 _arguments -s -w : $_hg_global_opts $_hg_pat_opts \ 368 _arguments -s -w : $_hg_global_opts $_hg_pat_opts \
426 '(--rev)-r+[search repository as it stood at revision]:revision:_hg_tags' \ 369 '(--rev -r)'{-r+,--rev}'[search repository as it stood at revision]:revision:_hg_tags' \
427 '(-r)--rev[search repository as it stood at revision]:revision:_hg_tags' \ 370 '(--print0 -0)'{-0,--print0}'[end filenames with NUL, for use with xargs]' \
428 '(--print0)-0[end filenames with NUL, for use with xargs]' \ 371 '(--fullpath -f)'{-f,--fullpath}'[print complete paths]' \
429 '(-0)--print0[end filenames with NUL, for use with xargs]' \
430 '(--fullpath)-f[print complete paths]' \
431 '(-f)--fullpath[print complete paths]' \
432 '*:search pattern:_files -W $(_hg_cmd root)' 372 '*:search pattern:_files -W $(_hg_cmd root)'
433 } 373 }
434 374
435 _hg_cmd_log() { 375 _hg_cmd_log() {
436 _arguments -s -w : $_hg_global_opts $_hg_pat_opts $_hg_style_opts \ 376 _arguments -s -w : $_hg_global_opts $_hg_pat_opts $_hg_style_opts \
437 '(--follow --follow-first)-f[follow changeset or history]' \ 377 '(--follow --follow-first -f)'{-f,--follow}'[follow changeset or history]' \
438 '(-f --follow-first)--follow[follow changeset or history]' \
439 '(-f --follow)--follow-first[only follow the first parent of merge changesets]' \ 378 '(-f --follow)--follow-first[only follow the first parent of merge changesets]' \
440 '(--copies)-C[show copied files]' \ 379 '(--copies -C)'{-C,--copies}'[show copied files]' \
441 '(-C)--copies[show copied files]' \ 380 '(--keyword -k)'{-k+,--keyword}'[search for a keyword]:' \
442 '(--keyword)-k+[search for a keyword]:' \ 381 '(--limit -l)'{-l+,--limit}'[limit number of changes displayed]:' \
443 '(-k)--keyword[search for a keyword]:' \
444 '(--limit)-l+[limit number of changes displayed]:' \
445 '(-l)--limit[limit number of changes displayed]:' \
446 '*'{-r,--rev}'[show the specified revision or range]:revision:_hg_tags' \ 382 '*'{-r,--rev}'[show the specified revision or range]:revision:_hg_tags' \
447 '(--no-merges)-M[do not show merges]' \ 383 '(--no-merges -M)'{-M,--no-merges}'[do not show merges]' \
448 '(-M)--no-merges[do not show merges]' \ 384 '(--only-merges -m)'{-m,--only-merges}'[show only merges]' \
449 '(--only-merges)-m[show only merges]' \ 385 '(--patch -p)'{-p,--patch}'[show patch]' \
450 '(-m)--only-merges[show only merges]' \ 386 '(--prune -P)'{-P+,--prune}'[do not display revision or any of its ancestors]:revision:_hg_tags' \
451 '(--patch)-p[show patch]' \
452 '(-p)--patch[show patch]' \
453 '(--prune)-P+[do not display revision or any of its ancestors]:revision:_hg_tags' \
454 '(-P)--prune[do not display revision or any of its ancestors]:revision:_hg_tags' \
455 '*:files:_files -W $(_hg_cmd root)' 387 '*:files:_files -W $(_hg_cmd root)'
456 } 388 }
457 389
458 _hg_cmd_manifest() { 390 _hg_cmd_manifest() {
459 _arguments -s -w : $_hg_global_opts \ 391 _arguments -s -w : $_hg_global_opts \
460 ':revision:_hg_tags' 392 ':revision:_hg_tags'
461 } 393 }
462 394
463 _hg_cmd_outgoing() { 395 _hg_cmd_outgoing() {
464 _arguments -s -w : $_hg_global_opts $_hg_remote_opts $_hg_style_opts \ 396 _arguments -s -w : $_hg_global_opts $_hg_remote_opts $_hg_style_opts \
465 '(--no-merges)-M[do not show merge revisions]' \ 397 '(--no-merges -M)'{-M,--no-merges}'[do not show merge revisions]' \
466 '(-M)--no-merges[do not show merge revisions]' \ 398 '(--force -f)'{-f,--force}'[run even when the remote repository is unrelated]' \
467 '(--force)-f[run even when the remote repository is unrelated]' \ 399 '(--patch -p)'{-p,--patch}'[show patch]' \
468 '(-f)--force[run even when the remote repository is unrelated]' \ 400 '(--rev -r)'{-r+,--rev}'[a specific revision you would like to push]' \
469 '(--patch)-p[show patch]' \ 401 '(--newest-first -n)'{-n,--newest-first}'[show newest record first]' \
470 '(-p)--patch[show patch]' \
471 '(--rev)-r+[a specific revision you would like to push]' \
472 '(-r)--rev[a specific revision you would like to push]' \
473 '(--newest-first)-n[show newest record first]' \
474 '(-n)--newest-first[show newest record first]' \
475 ':destination:_hg_remote' 402 ':destination:_hg_remote'
476 } 403 }
477 404
478 _hg_cmd_parents() { 405 _hg_cmd_parents() {
479 _arguments -s -w : $_hg_global_opts $_hg_style_opts \ 406 _arguments -s -w : $_hg_global_opts $_hg_style_opts \
480 '(--rev)-r[show parents of the specified rev]:revision:_hg_tags' \ 407 '(--rev -r)'{-r+,--rev}'[show parents of the specified rev]:revision:_hg_tags' \
481 '(-r)--rev[show parents of the specified rev]:revision:_hg_tags' \
482 ':revision:_hg_tags' 408 ':revision:_hg_tags'
483 } 409 }
484 410
485 _hg_cmd_paths() { 411 _hg_cmd_paths() {
486 _arguments -s -w : $_hg_global_opts \ 412 _arguments -s -w : $_hg_global_opts \
487 ':path:_hg_paths' 413 ':path:_hg_paths'
488 } 414 }
489 415
490 _hg_cmd_pull() { 416 _hg_cmd_pull() {
491 _arguments -s -w : $_hg_global_opts $_hg_remote_opts \ 417 _arguments -s -w : $_hg_global_opts $_hg_remote_opts \
492 '(--force)-f[run even when the remote repository is unrelated]' \ 418 '(--force -f)'{-f,--force}'[run even when the remote repository is unrelated]' \
493 '(-f)--force[run even when the remote repository is unrelated]' \ 419 '(--update -u)'{-u,--update}'[update to new tip if changesets were pulled]' \
494 '(--update)-u[update to new tip if changesets were pulled]' \
495 '(-u)--update[update to new tip if changesets were pulled]' \
496 ':source:_hg_remote' 420 ':source:_hg_remote'
497 } 421 }
498 422
499 _hg_cmd_push() { 423 _hg_cmd_push() {
500 _arguments -s -w : $_hg_global_opts $_hg_remote_opts \ 424 _arguments -s -w : $_hg_global_opts $_hg_remote_opts \
501 '(--force)-f[force push]' \ 425 '(--force -f)'{-f,--force}'[force push]' \
502 '(-f)--force[force push]' \ 426 '(--rev -r)'{-r+,--rev}'[a specific revision you would like to push]' \
503 '(--rev)-r+[a specific revision you would like to push]' \
504 '(-r)--rev[a specific revision you would like to push]' \
505 ':destination:_hg_remote' 427 ':destination:_hg_remote'
506 } 428 }
507 429
508 _hg_cmd_remove() { 430 _hg_cmd_remove() {
509 _arguments -s -w : $_hg_global_opts $_hg_pat_opts \ 431 _arguments -s -w : $_hg_global_opts $_hg_pat_opts \
510 '(--after)-A[record remove that has already occurred]' \ 432 '(--after -A)'{-A,--after}'[record remove that has already occurred]' \
511 '(-A)--after[record remove that has already occurred]' \ 433 '(--force -f)'{-f,--force}'[remove file even if modified]' \
512 '(--force)-f[remove file even if modified]' \
513 '(-f)--force[remove file even if modified]' \
514 '*:file:_files -W $(_hg_cmd root)' 434 '*:file:_files -W $(_hg_cmd root)'
515 } 435 }
516 436
517 _hg_cmd_rename() { 437 _hg_cmd_rename() {
518 _arguments -s -w : $_hg_global_opts $_hg_pat_opts $_hg_dryrun_opts \ 438 _arguments -s -w : $_hg_global_opts $_hg_pat_opts $_hg_dryrun_opts \
519 '(--after)-A[record a rename that has already occurred]' \ 439 '(--after -A)'{-A,--after}'[record a rename that has already occurred]' \
520 '(-A)--after[record a rename that has already occurred]' \ 440 '(--force -f)'{-f,--force}'[forcibly copy over an existing managed file]' \
521 '(--force)-f[forcibly copy over an existing managed file]' \
522 '(-f)--force[forcibly copy over an existing managed file]' \
523 '*:file:_files -W $(_hg_cmd root)' 441 '*:file:_files -W $(_hg_cmd root)'
524 } 442 }
525 443
526 _hg_cmd_revert() { 444 _hg_cmd_revert() {
527 _arguments -s -w : $_hg_global_opts $_hg_pat_opts $_hg_dryrun_opts \ 445 _arguments -s -w : $_hg_global_opts $_hg_pat_opts $_hg_dryrun_opts \
528 '(--all :)-a[revert all changes when no arguments given]' \ 446 '(--all -a :)'{-a,--all}'[revert all changes when no arguments given]' \
529 '(-a :)--all[revert all changes when no arguments given]' \ 447 '(--rev -r)'{-r+,--rev}'[revision to revert to]:revision:_hg_tags' \
530 '(--rev)-r+[revision to revert to]:revision:_hg_tags' \
531 '(-r)--rev[revision to revert to]:revision:_hg_tags' \
532 '--no-backup[do not save backup copies of files]' \ 448 '--no-backup[do not save backup copies of files]' \
533 '*:file:_files -W $(_hg_cmd root)' 449 '*:file:_files -W $(_hg_cmd root)'
534 } 450 }
535 451
536 _hg_cmd_serve() { 452 _hg_cmd_serve() {
537 _arguments -s -w : $_hg_global_opts \ 453 _arguments -s -w : $_hg_global_opts \
538 '(--accesslog)-A+[name of access log file]:log file:_files' \ 454 '(--accesslog -A)'{-A+,--accesslog}'[name of access log file]:log file:_files' \
539 '(-A)--accesslog[name of access log file]:log file:_files' \ 455 '(--errorlog -E)'{-E+,--errorlog}'[name of error log file]:log file:_files' \
540 '(--errorlog)-E+[name of error log file]:log file:_files' \ 456 '(--daemon -d)'{-d,--daemon}'[run server in background]' \
541 '(-E)--errorlog[name of error log file]:log file:_files' \ 457 '(--port -p)'{-p+,--port}'[listen port]:listen port:' \
542 '(--daemon)-d[run server in background]' \ 458 '(--address -a)'{-a+,--address}'[interface address]:interface address:' \
543 '(-d)--daemon[run server in background]' \ 459 '(--name -n)'{-n+,--name}'[name to show in web pages]:repository name:' \
544 '(--port)-p+[listen port]:listen port:' \ 460 '(--templates -t)'{-t,--templates}'[web template directory]:template dir:_files -/' \
545 '(-p)--port[listen port]:listen port:' \
546 '(--address)-a+[interface address]:interface address:' \
547 '(-a)--address[interface address]:interface address:' \
548 '(--name)-n+[name to show in web pages]:repository name:' \
549 '(-n)--name[name to show in web pages]:repository name:' \
550 '(--templates)-t[web template directory]:template dir:_files -/' \
551 '(-t)--templates[web template directory]:template dir:_files -/' \
552 '--style[web template style]:style' \ 461 '--style[web template style]:style' \
553 '--stdio[for remote clients]' \ 462 '--stdio[for remote clients]' \
554 '(--ipv6)-6[use IPv6 in addition to IPv4]' \ 463 '(--ipv6 -6)'{-6,--ipv6}'[use IPv6 in addition to IPv4]'
555 '(-6)--ipv6[use IPv6 in addition to IPv4]'
556 } 464 }
557 465
558 _hg_cmd_status() { 466 _hg_cmd_status() {
559 _arguments -s -w : $_hg_global_opts $_hg_pat_opts \ 467 _arguments -s -w : $_hg_global_opts $_hg_pat_opts \
560 '(--all)-A[show status of all files]' \ 468 '(--all -A)'{-A,--all}'[show status of all files]' \
561 '(-A)--all[show status of all files]' \ 469 '(--modified -m)'{-m,--modified}'[show only modified files]' \
562 '(--modified)-m[show only modified files]' \ 470 '(--added -a)'{-a,--added}'[show only added files]' \
563 '(-m)--modified[show only modified files]' \ 471 '(--removed -r)'{-r,--removed}'[show only removed files]' \
564 '(--added)-a[show only added files]' \ 472 '(--deleted -d)'{-d,--deleted}'[show only deleted (but tracked) files]' \
565 '(-a)--added[show only added files]' \ 473 '(--clean -c)'{-c,--clean}'[show only files without changes]' \
566 '(--removed)-r[show only removed files]' \ 474 '(--unknown -u)'{-u,--unknown}'[show only unknown files]' \
567 '(-r)--removed[show only removed files]' \ 475 '(--ignored -i)'{-i,--ignored}'[show ignored files]' \
568 '(--deleted)-d[show only deleted (but tracked) files]' \ 476 '(--no-status -n)'{-n,--no-status}'[hide status prefix]' \
569 '(-d)--deleted[show only deleted (but tracked) files]' \ 477 '(--copies -C)'{-C,--copies}'[show source of copied files]' \
570 '(--clean)-c[show only files without changes]' \ 478 '(--print0 -0)'{-0,--print0}'[end filenames with NUL, for use with xargs]' \
571 '(-c)--clean[show only files without changes]' \
572 '(--unknown)-u[show only unknown files]' \
573 '(-u)--unknown[show only unknown files]' \
574 '(--ignored)-i[show ignored files]' \
575 '(-i)--ignored[show ignored files]' \
576 '(--no-status)-n[hide status prefix]' \
577 '(-n)--no-status[hide status prefix]' \
578 '(--copies)-C[show source of copied files]' \
579 '(-C)--copies[show source of copied files]' \
580 '(--print0)-0[end filenames with NUL, for use with xargs]' \
581 '(-0)--print0[end filenames with NUL, for use with xargs]' \
582 '--rev[show difference from revision]:revision:_hg_tags' \ 479 '--rev[show difference from revision]:revision:_hg_tags' \
583 '*:files:_files' 480 '*:files:_files'
584 } 481 }
585 482
586 _hg_cmd_tag() { 483 _hg_cmd_tag() {
587 _arguments -s -w : $_hg_global_opts \ 484 _arguments -s -w : $_hg_global_opts \
588 '(--local)-l[make the tag local]' \ 485 '(--local -l)'{-l,--local}'[make the tag local]' \
589 '(-l)--local[make the tag local]' \ 486 '(--message -m)'{-m+,--message}'[message for tag commit log entry]:message:' \
590 '(--message)-m+[message for tag commit log entry]:message:' \ 487 '(--date -d)'{-d+,--date}'[record datecode as commit date]:date code:' \
591 '(-m)--message[message for tag commit log entry]:message:' \ 488 '(--user -u)'{-u+,--user}'[record user as commiter]:user:' \
592 '(--date)-d+[record datecode as commit date]:date code:' \ 489 '(--rev -r)'{-r+,--rev}'[revision to tag]:revision:_hg_tags' \
593 '(-d)--date[record datecode as commit date]:date code:' \
594 '(--user)-u+[record user as commiter]:user:' \
595 '(-u)--user[record user as commiter]:user:' \
596 '(--rev)-r+[revision to tag]:revision:_hg_tags' \
597 '(-r)--rev[revision to tag]:revision:_hg_tags' \
598 ':tag name:' 490 ':tag name:'
599 } 491 }
600 492
601 _hg_cmd_tip() { 493 _hg_cmd_tip() {
602 _arguments -s -w : $_hg_global_opts $_hg_style_opts \ 494 _arguments -s -w : $_hg_global_opts $_hg_style_opts \
603 '(--patch)-p[show patch]' \ 495 '(--patch -p)'{-p,--patch}'[show patch]'
604 '(-p)--patch[show patch]'
605 } 496 }
606 497
607 _hg_cmd_unbundle() { 498 _hg_cmd_unbundle() {
608 _arguments -s -w : $_hg_global_opts \ 499 _arguments -s -w : $_hg_global_opts \
609 '(--update)-u[update to new tip if changesets were unbundled]' \ 500 '(--update -u)'{-u,--update}'[update to new tip if changesets were unbundled]' \
610 '(-u)--update[update to new tip if changesets were unbundled]' \
611 ':files:_files' 501 ':files:_files'
612 } 502 }
613 503
614 _hg_cmd_update() { 504 _hg_cmd_update() {
615 _arguments -s -w : $_hg_global_opts \ 505 _arguments -s -w : $_hg_global_opts \
616 '(--clean)-C[overwrite locally modified files]' \ 506 '(--clean -C)'{-C,--clean}'[overwrite locally modified files]' \
617 '(-C)--clean[overwrite locally modified files]' \ 507 '(--force -f)'{-f,--force}'[force a merge with outstanding changes]' \
618 '(--force)-f[force a merge with outstanding changes]' \
619 '(-f)--force[force a merge with outstanding changes]' \
620 ':revision:_hg_tags' 508 ':revision:_hg_tags'
621 } 509 }
622 510
623 # HGK 511 # HGK
624 _hg_cmd_view() { 512 _hg_cmd_view() {
625 _arguments -s -w : $_hg_global_opts \ 513 _arguments -s -w : $_hg_global_opts \
626 '(--limit)-l+[limit number of changes displayed]:' \ 514 '(--limit -l)'{-l+,--limit}'[limit number of changes displayed]:' \
627 '(-l)--limit[limit number of changes displayed]:' \
628 ':revision range:_hg_tags' 515 ':revision range:_hg_tags'
629 } 516 }
630 517
631 # MQ 518 # MQ
632 _hg_cmd_qdelete() { 519 _hg_cmd_qdelete() {
633 _arguments -s -w : $_hg_global_opts \ 520 _arguments -s -w : $_hg_global_opts \
634 '(--keep)-k[keep patch file]' \ 521 '(--keep -k)'{-k,--keep}'[keep patch file]' \
635 '(-k)--keep[keep patch file]' \ 522 '*'{-r+,--rev}'[stop managing a revision]:applied patch:_hg_qapplied' \
636 '*-r+[stop managing a revision]:applied patch:_hg_qapplied' \
637 '*--revision[stop managing a revision]:applied patch:_hg_qapplied' \
638 '*:patch:_hg_qunapplied' 523 '*:patch:_hg_qunapplied'
639 } 524 }
640 525
641 _hg_cmd_qheader() { 526 _hg_cmd_qheader() {
642 _arguments -s -w : $_hg_global_opts \ 527 _arguments -s -w : $_hg_global_opts \
643 ':patch:_hg_qseries' 528 ':patch:_hg_qseries'
644 } 529 }
645 530
646 _hg_cmd_qnew() { 531 _hg_cmd_qnew() {
647 _arguments -s -w : $_hg_global_opts $_hg_commit_opts \ 532 _arguments -s -w : $_hg_global_opts $_hg_commit_opts \
648 '(--force)-f[import uncommitted changes into patch]' \ 533 '(--force -f)'{-f,--force}'[import uncommitted changes into patch]' \
649 '(-f)--force[import uncommitted changes into patch]' \
650 ':patch:' 534 ':patch:'
651 } 535 }
652 536
653 _hg_cmd_qpop() { 537 _hg_cmd_qpop() {
654 _arguments -s -w : $_hg_global_opts \ 538 _arguments -s -w : $_hg_global_opts \
655 '(--all :)-a[pop all patches]' \ 539 '(--all -a :)'{-a,--all}'[pop all patches]' \
656 '(-a :)--all[pop all patches]' \ 540 '(--name -n)'{-n+,--name}'[queue name to pop]:' \
657 '(--name)-n+[queue name to pop]:' \ 541 '(--force -f)'{-f,--force}'[forget any local changes]' \
658 '(-n)--name[queue name to pop]:' \
659 '(--force)-f[forget any local changes]' \
660 '(-f)--force[forget any local changes]' \
661 ':patch:_hg_qapplied' 542 ':patch:_hg_qapplied'
662 } 543 }
663 544
664 _hg_cmd_qpush() { 545 _hg_cmd_qpush() {
665 _arguments -s -w : $_hg_global_opts \ 546 _arguments -s -w : $_hg_global_opts \
666 '(--all :)-a[apply all patches]' \ 547 '(--all -a :)'{-a,--all}'[apply all patches]' \
667 '(-a :)--all[apply all patches]' \ 548 '(--list -l)'{-l,--list}'[list patch name in commit text]' \
668 '(--list)-l[list patch name in commit text]' \ 549 '(--merge -m)'{-m+,--merge}'[merge from another queue]:' \
669 '(-l)--list[list patch name in commit text]' \ 550 '(--name -n)'{-n+,--name}'[merge queue name]:' \
670 '(--merge)-m+[merge from another queue]:' \ 551 '(--force -f)'{-f,--force}'[apply if the patch has rejects]' \
671 '(-m)--merge[merge from another queue]:' \
672 '(--name)-n+[merge queue name]:' \
673 '(-n)--name[merge queue name]:' \
674 '(--force)-f[apply if the patch has rejects]' \
675 '(-f)--force[apply if the patch has rejects]' \
676 ':patch:_hg_qunapplied' 552 ':patch:_hg_qunapplied'
677 } 553 }
678 554
679 _hg_cmd_qrefresh() { 555 _hg_cmd_qrefresh() {
680 _arguments -s -w : $_hg_global_opts $_hg_pat_opts $_hg_commit_opts \ 556 _arguments -s -w : $_hg_global_opts $_hg_pat_opts $_hg_commit_opts \
681 '(--git)-g[use git extended diff format]' \ 557 '(--git -g)'{-g,--git}'[use git extended diff format]' \
682 '(-g)--git[use git extended diff format]' \ 558 '(--short -s)'{-s,--short}'[short refresh]' \
683 '(--short)-s[short refresh]' \
684 '(-s)--short[short refresh]' \
685 '*:files:_files -W $(_hg_cmd root)' 559 '*:files:_files -W $(_hg_cmd root)'
686 } 560 }
687 561
688 _hg_cmd_strip() { 562 _hg_cmd_strip() {
689 _arguments -s -w : $_hg_global_opts \ 563 _arguments -s -w : $_hg_global_opts \
690 '(--force)-f[force multi-head removal]' \ 564 '(--force -f)'{-f,--force}'[force multi-head removal]' \
691 '(-f)--force[force multi-head removal]' \ 565 '(--backup -b)'{-b,--backup}'[bundle unrelated changesets]' \
692 '(--backup)-b[bundle unrelated changesets]' \ 566 '(--nobackup -n)'{-n,--nobackup}'[no backups]' \
693 '(-b)--backup[bundle unrelated changesets]' \
694 '(--nobackup)-n[no backups]' \
695 '(-n)--nobackup[no backups]' \
696 ':revision:_hg_tags' 567 ':revision:_hg_tags'
697 } 568 }
698 569
699 _hg "$@" 570 _hg "$@"