# [PATCH] prompt: squelch error output from cat

5 messages from 2013-06-13 to 2013-06-15. Participants: Ramkumar Ramachandra, SZEDER Gábor.
Thread: https://gitlist.dev/t/34125

## Ramkumar Ramachandra, 2013-06-13 13:46

Subject: [PATCH] prompt: squelch error output from cat
Message-ID: <1371131209-32479-1-git-send-email-artagnon@gmail.com>
URL: https://gitlist.dev/e/1371131209-32479-1-git-send-email-artagnon%40gmail.com

```
The files $g/rebase-{merge,apply}/{head-name,msgnum,end} are not
guaranteed to exist.  When attempting to cat them, squelch the error
output to get rid of messages like these:

  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>
---
 contrib/completion/git-prompt.sh | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/contrib/completion/git-prompt.sh b/contrib/completion/git-prompt.sh
index 86a4f3f..07a6218 100644
--- a/contrib/completion/git-prompt.sh
+++ b/contrib/completion/git-prompt.sh
@@ -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"
-- 
1.8.3.1.384.g7cec0b4

```

## SZEDER Gábor, 2013-06-13 14:39

Subject: Re: [PATCH] prompt: squelch error output from cat
Message-ID: <20130613143942.GK2091@goldbirke>
URL: https://gitlist.dev/e/20130613143942.GK2091%40goldbirke
In-Reply-To: <1371131209-32479-1-git-send-email-artagnon@gmail.com>

```
Hi,

On Thu, Jun 13, 2013 at 07:16:49PM +0530, Ramkumar Ramachandra wrote:
> The files $g/rebase-{merge,apply}/{head-name,msgnum,end} are not
> guaranteed to exist.  When attempting to cat them, squelch the error
> output to get rid of messages like these:
> 
>   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>

Makes sense.

Just curious: when do those files don't exist?  When using an older
version of git with a newer prompt, obviously, but are there other
cases?

Thanks,
Gábor

```

## Ramkumar Ramachandra, 2013-06-13 14:45

Subject: Re: [PATCH] prompt: squelch error output from cat
Message-ID: <CALkWK0kwVahUF_kwk4jRr7Qr5_H-FY_aXWLkQcaZV-YrV_mgjw@mail.gmail.com>
URL: https://gitlist.dev/e/CALkWK0kwVahUF_kwk4jRr7Qr5_H-FY_aXWLkQcaZV-YrV_mgjw%40mail.gmail.com
In-Reply-To: <20130613143942.GK2091@goldbirke>

```
SZEDER Gábor wrote:
> Just curious: when do those files don't exist?  When using an older
> version of git with a newer prompt, obviously, but are there other
> cases?

  # On terminal one
  $ git rebase --interactive master
  # Ignore editor, and open terminal two
  cat: .git/rebase-merge/msgnum: No such file or directory
  cat: .git/rebase-merge/end: No such file or directory
  $

```

## SZEDER Gábor, 2013-06-14 13:58

Subject: Re: [PATCH] prompt: squelch error output from cat
Message-ID: <20130614135816.GL2091@goldbirke>
URL: https://gitlist.dev/e/20130614135816.GL2091%40goldbirke
In-Reply-To: <CALkWK0kwVahUF_kwk4jRr7Qr5_H-FY_aXWLkQcaZV-YrV_mgjw@mail.gmail.com>

```
On Thu, Jun 13, 2013 at 08:15:59PM +0530, Ramkumar Ramachandra wrote:
> SZEDER Gábor wrote:
> > Just curious: when do those files don't exist?  When using an older
> > version of git with a newer prompt, obviously, but are there other
> > cases?
> 
>   # On terminal one
>   $ git rebase --interactive master
>   # Ignore editor, and open terminal two
>   cat: .git/rebase-merge/msgnum: No such file or directory
>   cat: .git/rebase-merge/end: No such file or directory
>   $

Interesting, I wouldn't have thought of that.

I was wondering whether there are cases and code paths in git rebase,
where it knows what to write into those files but it does not write
them, which might be worth fixing additionally.  In case of this
halfway-started rebase I don't see any point in displaying 0/42, so I
don't think any additional fix would be necessary.


Thanks,
Gábor

```

## SZEDER Gábor, 2013-06-15 15:33

Subject: Re: [PATCH] prompt: squelch error output from cat
Message-ID: <20130615153300.GO2091@goldbirke>
URL: https://gitlist.dev/e/20130615153300.GO2091%40goldbirke
In-Reply-To: <1371131209-32479-1-git-send-email-artagnon@gmail.com>

```
Hi Junio,

I see you picked up this patch in branch
'rr/prompt-autostash-breakage-fix'.  This patch has actually nothing
to do with autostash, it is a fix for b71dc3e1 (bash-prompt.sh: show
where rebase is at when stopped, 2013-04-25).


Gábor

On Thu, Jun 13, 2013 at 07:16:49PM +0530, Ramkumar Ramachandra wrote:
> The files $g/rebase-{merge,apply}/{head-name,msgnum,end} are not
> guaranteed to exist.  When attempting to cat them, squelch the error
> output to get rid of messages like these:
> 
>   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>
> ---
>  contrib/completion/git-prompt.sh | 12 ++++++------
>  1 file changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/contrib/completion/git-prompt.sh b/contrib/completion/git-prompt.sh
> index 86a4f3f..07a6218 100644
> --- a/contrib/completion/git-prompt.sh
> +++ b/contrib/completion/git-prompt.sh
> @@ -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"
> -- 
> 1.8.3.1.384.g7cec0b4
> 
> 

```
