prompt: squelch error output from cat
authorRamkumar Ramachandra <artagnon@gmail.com>
Fri, 14 Jun 2013 08:28:05 +0000 (13:58 +0530)
committerJunio C Hamano <gitster@pobox.com>
Fri, 14 Jun 2013 15:27:09 +0000 (08:27 -0700)
The files $g/rebase-{merge,apply}/{head-name,msgnum,end} are not
guaranteed to exist. When attempting to cat them, squelch the error
output.

In addition to guarding against stray directories, this patch addresses
a real problem:

# on terminal 1
$ git rebase -i master
# ignore editor, and switch to terminal 2
cat: .git/rebase-merge/msgnum: No such file or directory
cat: .git/rebase-merge/end: No such file or directory
$

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
contrib/completion/git-prompt.sh
index 86a4f3fa49cf68e14a6b0de13cb7f63fe8a2624d..07a6218d10679f5102c3649794bfd98e1883da75 100644 (file)
@@ -347,9 +347,9 @@ __git_ps1 ()
                local step=""
                local total=""
                if [ -d "$g/rebase-merge" ]; then
-                       b="$(cat "$g/rebase-merge/head-name")"
-                       step=$(cat "$g/rebase-merge/msgnum")
-                       total=$(cat "$g/rebase-merge/end")
+                       b="$(cat "$g/rebase-merge/head-name" 2>/dev/null)"
+                       step=$(cat "$g/rebase-merge/msgnum" 2>/dev/null)
+                       total=$(cat "$g/rebase-merge/end" 2>/dev/null)
                        if [ -f "$g/rebase-merge/interactive" ]; then
                                r="|REBASE-i"
                        else
@@ -357,10 +357,10 @@ __git_ps1 ()
                        fi
                else
                        if [ -d "$g/rebase-apply" ]; then
-                               step=$(cat "$g/rebase-apply/next")
-                               total=$(cat "$g/rebase-apply/last")
+                               step=$(cat "$g/rebase-apply/next" 2>/dev/null)
+                               total=$(cat "$g/rebase-apply/last" 2>/dev/null)
                                if [ -f "$g/rebase-apply/rebasing" ]; then
-                                       b="$(cat "$g/rebase-apply/head-name")"
+                                       b="$(cat "$g/rebase-apply/head-name" 2>/dev/null)"
                                        r="|REBASE"
                                elif [ -f "$g/rebase-apply/applying" ]; then
                                        r="|AM"