From a82d31d71fb073bf59e716e69a978d12af934e63 Mon Sep 17 00:00:00 2001 From: "mpm@selenic.com" Date: Wed, 17 Aug 2005 12:22:12 -0800 Subject: [PATCH] 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. --- contrib/bash_completion | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/contrib/bash_completion b/contrib/bash_completion index 6e264af3b1..6d2686449d 100644 --- a/contrib/bash_completion +++ b/contrib/bash_completion @@ -19,6 +19,12 @@ _hg_paths() 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 @@ _hg() 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 @@ _hg() } -complete -o filenames -F _hg hg +complete -o default -F _hg hg