From db7e23754d3bdf97ea8a3792ae071b47406ea027 Mon Sep 17 00:00:00 2001 From: Peter Stephenson Date: Mon, 27 Sep 2004 11:17:43 +0000 Subject: unposted: improve p4 add to ignore files being added already --- ChangeLog | 6 ++++++ Completion/Unix/Command/_perforce | 8 +++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 53fdbaa5a..5267b1893 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2004-09-27 Peter Stephenson + + * unposted: Completion/Unix/Command/_perforce: when adding + files, ignore files already open for whatever reason, + including those already being added. + 2004-09-24 Wayne Davison * 20409: Completion/Unix/Command/_darcs: Completion for the darcs diff --git a/Completion/Unix/Command/_perforce b/Completion/Unix/Command/_perforce index 13c247183..4fdd4bacf 100644 --- a/Completion/Unix/Command/_perforce +++ b/Completion/Unix/Command/_perforce @@ -378,7 +378,9 @@ _perforce() { # # Front end to _call_program to add in the global arguments -# passed to p4. +# passed to p4. The first argument is the tag, the remaining +# arguments are passed to p4. Typically the tag is the same +# as the first p4 argument. (( $+functions[_perforce_call_p4] )) || _perforce_call_p4() { local cp_tag=$1 @@ -987,8 +989,12 @@ _perforce_files() { : ${PREFIX:#(#b)(*/)(*)} pfx="$match[1]" pfx=${(e)~pfx} + # Exclude both files already known to perforce, plus + # those opened. There will be some overlap but we need + # to exclude files that are already opened for add. omitpats=( ${${${${(f)"$(_perforce_call_p4 files files \"\$pfx\*\$\{\(Q\)SUFFIX\}\" 2>/dev/null)"}%\#*}##*/}//(#m)[][*?()<|^~#\\]/\\$MATCH} + ${${${${(f)"$(_perforce_call_p4 opened opened \"\$pfx\*\$\{\(Q\)SUFFIX\}\" 2>/dev/null)"}%\#*}##*/}//(#m)[][*?()<|^~#\\]/\\$MATCH} ) [[ $#omitpats -eq 1 && $omitpats[1] = '' ]] && omitpats=() -- cgit v1.2.3-70-g09d2