Mercurial > hg
changeset 935:925563ff1b18
bash: Add smarter completion of add/commit/remove/forget/diff/revert
Use hg status to determine which files are interesting for various commands.
Thus, hg add [tab] finds unknown files, and hg commit [tab] finds added, modified, or removed files.
author | mpm@selenic.com |
---|---|
date | Wed, 17 Aug 2005 12:22:12 -0800 |
parents | ff484cc157d6 |
children | b62d1e738fa9 |
files | contrib/bash_completion |
diffstat | 1 files changed, 25 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/contrib/bash_completion Wed Aug 17 00:36:36 2005 -0800 +++ b/contrib/bash_completion Wed Aug 17 12:22:12 2005 -0800 @@ -19,6 +19,12 @@ COMPREPLY=(${COMPREPLY[@]:-} $( compgen -W "$paths" -- "$cur" )) } +_hg_status() +{ + local files="$( hg status -$1 | cut -b 3- )" + COMPREPLY=(${COMPREPLY[@]:-} $( compgen -W "$files" -- "$cur" )) +} + _hg_tags() { local tags="$(hg tags | sed -e 's/[0-9]*:[a-f0-9]\{40\}$//; s/ *$//')" @@ -104,6 +110,24 @@ paths) _hg_paths ;; + add) + _hg_status "u" + ;; + commit) + _hg_status "mra" + ;; + remove) + _hg_status "r" + ;; + forget) + _hg_status "a" + ;; + diff) + _hg_status "mra" + ;; + revert) + _hg_status "mra" + ;; clone) local count=$(_hg_count_non_option) if [ $count = 1 ]; then @@ -126,4 +150,4 @@ } -complete -o filenames -F _hg hg +complete -o default -F _hg hg