--- bash_completion 2004-07-11 14:36:39.000000000 -0400 +++ bash_completion.svn 2004-07-26 16:15:32.936800848 -0400 @@ -1525,6 +1525,271 @@ complete -F _cvs $default cvs } +# svn(1) completion +# +have svn && { + +_svn() +{ + local cur count mode i cvsroot cvsroots pwd + local -a flags miss files entries changed newremoved + + COMPREPLY=() + cur=${COMP_WORDS[COMP_CWORD]} + + count=0 + for i in ${COMP_WORDS[@]}; do + [ $count -eq $COMP_CWORD ] && break + if [ -z "$mode" ]; then + case $i in + add) + mode=add + ;; + @(blame|praise|annotate|ann)) + mode=blame + ;; + cat) + mode=cat + ;; + @(checkout|co)) + mode=checkout + ;; + cleanup) + mode=cleanup + ;; + @(commit|ci)) + mode=commit + ;; + @(copy|cp)) + mode=copy + ;; + @(delete|del|remove|rm)) + mode=delete + ;; + @(diff|di)) + mode=diff + ;; + export) + mode=export + ;; + @(help|?|h)) + mode=help + ;; + import) + mode=import + ;; + info) + mode=info + ;; + @(list|ls)) + mode=list + ;; + log) + mode=log + ;; + merge) + mode=merge + ;; + mkdir) + mode=mkdir + ;; + @(move|mv|rename|ren)) + mode=move + ;; + @(propdel|pdel|pd)) + mode=propdel + ;; + @(propedit|pedit|pe)) + mode=propedit + ;; + @(propget|pget|pg)) + mode=propget + ;; + @(proplist|plist|pl)) + mode=proplist + ;; + @(propset|pset|ps)) + mode=propset + ;; + resolved) + mode=resolved + ;; + revert) + mode=revert + ;; + @(status|stat|st)) + mode=status + ;; + @(switch|sw)) + mode=switch + ;; + @(update|up)) + mode=update + ;; + *) + ;; + esac + elif [[ "$i" = -* ]]; then + flags=( ${flags[@]:-} $i ) + fi + count=$((++count)) + done + + case "$mode" in + add) + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--targets -N --non-recursive -q --quiet --config-dir --auto-props --no-auto-props' -- $cur ) ) + fi + ;; + blame) + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-r --revision --username --password --no-auth-cache --non-interactive --config-dir' -- $cur ) ) + fi + ;; + cat) + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-r --revision --username --password --no-auth-cache --non-interactive --config-dir' -- $cur ) ) + fi + ;; + checkout) + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-r --revision -q --quiet -N --non-recursive --username --password --no-auth-cache --non-interactive --config-dir' -- $cur ) ) + fi + ;; + cleanup) + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--diff3-cmd --config-dir' -- $cur ) ) + fi + ;; + commit) + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-m --message -F --file -q --quiet -N --non-recursive --targets --force-log --username --password --no-auth-cache --non-interactive --editor-cmd --encoding --config-dir' -- $cur ) ) + fi + ;; + copy) + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-m --message -F --file -r --revision -q --quiet --username --password --no-auth-cache --non-interactive --force-log --editor-cmd --encoding --config-dir' -- $cur ) ) + fi + ;; + delete) + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--force --force-log -m --message -F --file -q --quiet --targets --username --password --no-auth-cache --non-interactive --editor-cmd --encoding --config-dir' -- $cur ) ) + fi + ;; + diff) + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-r --revision --old --new -x --extensions -N --non-recursive --diff-cmd --no-diff-deleted --notice-ancestry --username --password --no-auth-cache --non-interactive --config-dir' -- $cur ) ) + fi + ;; + export) + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-r --revision -q --quiet --force --username --password --no-auth-cache --non-interactive --config-dir' -- $cur ) ) + fi + ;; + help) + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--version -q --quiet --config-dir' -- $cur ) ) + fi + ;; + import) + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-m --message -F --file -q --quiet -N --non-recursive --username --password --no-auth-cache --non-interactive --force-log --editor-cmd --encoding --config-dir --auto-props --no-auto-props' -- $cur ) ) + fi + ;; + info) + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--targets -R --recursive --config-dir' -- $cur ) ) + fi + ;; + list) + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-r --revision -v --verbose -R --recursive --username --password --no-auth-cache --non-interactive --config-dir' -- $cur ) ) + fi + ;; + log) + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-r --revision -q --quiet -v --verbose --targets --stop-on-copy --incremental --xml --username --password --no-auth-cache --non-interactive --config-dir' -- $cur ) ) + fi + ;; + merge) + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-r --revision -N --non-recursive -q --quiet --force --dry-run --diff3-cmd --ignore-ancestry --username --password --no-auth-cache --non-interactive --config-dir' -- $cur ) ) + fi + ;; + mkdir) + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-m --message -F --file -q --quiet --username --password --no-auth-cache --non-interactive --editor-cmd --encoding --force-log --config-dir' -- $cur ) ) + fi + ;; + move) + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-m --message -F --file -r --revision -q --quiet --force --username --password --no-auth-cache --non-interactive --editor-cmd --encoding --force-log --config-dir' -- $cur ) ) + fi + ;; + propdel) + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-q --quiet -R --recursive -r --revision --revprop --username --password --no-auth-cache --non-interactive --config-dir' -- $cur ) ) + fi + ;; + propedit) + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-r --revision --revprop --username --password --no-auth-cache --non-interactive --encoding --editor-cmd --force --config-dir' -- $cur ) ) + fi + ;; + propget) + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-R --recursive -r --revision --revprop --strict --username --password --no-auth-cache --non-interactive --config-dir' -- $cur ) ) + fi + ;; + proplist) + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-v --verbose -R --recursive -r --revision -q --quiet --revprop --username --password --no-auth-cache --non-interactive --config-dir' -- $cur ) ) + fi + ;; + propset) + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-F --file -q --quiet -r --revision --targets -R --recursive --revprop --username --password --no-auth-cache --non-interactive --encoding --force --config-dir' -- $cur ) ) + fi + ;; + resolved) + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--targets -R --recursive -q --quiet --config-dir' -- $cur ) ) + fi + ;; + revert) + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--targets -R --recursive -q --quiet --config-dir' -- $cur ) ) + fi + ;; + status) + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-u --show-updates -v --verbose -N --non-recursive -q --quiet --no-ignore --username --password --no-auth-cache --non-interactive --config-dir' -- $cur ) ) + fi + ;; + switch) + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-r --revision -N --non-recursive -q --quiet --diff3-cmd --relocate --username --password --no-auth-cache --non-interactive --config-dir' -- $cur ) ) + fi + ;; + update) + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-r --revision -N --non-recursive -q --quiet --diff3-cmd --username --password --no-auth-cache --non-interactive --config-dir' -- $cur ) ) + fi + ;; + "") + COMPREPLY=( $( compgen -W 'add blame cat checkout cleanup commit copy delete diff export help import info list log merge mkdir move propdel propedit propget proplist propset resolved revert status switch update praise annotate ann co ci cp del remove rm di ? h ls mv rename ren pdel pd pedit pe pget pg plist pl pset ps stat st sw up --help -h -?' -- $cur ) ) + ;; + + *) + ;; + esac + + + return 0 +} +complete -F _svn $default svn +} + have rpm && { # helper functions for rpm completion #