2008/7/11 Junio C Hamano <gitster@xxxxxxxxx>: > Robert Shearman <robertshearman@xxxxxxxxx> writes: >> diff --git a/git-rebase.sh b/git-rebase.sh >> index e2d85ee..0da2210 100755 >> --- a/git-rebase.sh >> +++ b/git-rebase.sh >> @@ -376,7 +376,7 @@ fi >> >> # Detach HEAD and reset the tree >> echo "First, rewinding head to replay your work on top of it..." >> -git checkout "$onto^0" >/dev/null 2>&1 || > > I think this very much is done deliberately by somebody who knows the > shell to discard everything. Why wasn't "git checkout "$onto^0" &> /dev/null" used then? Then only reason I can come up with would be portability, but it seems surprising to me. >> +git checkout "$onto^0" 2>&1 >/dev/null || > > And if it is beneficial to show the error, you just do not touch fd #2, > like this: > > git checkout "$onto^0" >/dev/null Absolutely. I was just trying to fix the statement to what I thought was the original intent. > As I do not see any reason to send the error message to stdout like you > did. > > I also suspect that this part of the script predates 6124aee (add a quiet > option to git-checkout, 2007-02-01) where the command learned to be more > quiet during the normal operation. Perhaps you can replace the line with > > git checkout -q "$onto^0" > > and be done with it. I haven't tested it, though. I just tested it and it solves the original issue whilst not displaying unnecessary messages during a rebase. For reference, the attached script reproduces the issue that I was trying to solve. Should I resend the patch (like the following) now that it is effectively completely your work? -git checkout "$onto^0" >/dev/null 2>&1 || +git checkout -q "$onto^0" || -- Rob Shearman
Attachment:
rebase_clash.sh
Description: Bourne shell script