From: Jay Soffian Date: Wed, 18 Feb 2009 13:32:43 GMT Subject: Re: [PATCH] disallow providing multiple upstream branches to rebase, pull --rebase Message-ID: <76718490902180532l1de135ccyd4e58c713e6af2c@mail.gmail.com> In-Reply-To: On Wed, Feb 18, 2009 at 8:28 AM, Johannes Schindelin wrote: >> if test -z "$rebase_root" >> then >> # The upstream head must be given. Make sure it is valid. >> upstream_name="$1" >> shift >> upstream=`git rev-parse --verify "${upstream_name}^0"` || >> die "invalid upstream $upstream_name" >> unset root_flag >> upstream_arg="$upstream_name" >> else >> test -z "$newbase" && die "--root must be used with --onto" >> unset upstream_name >> unset upstream >> root_flag="--root" >> upstream_arg="$root_flag" >> fi >> >> will do the trick, yes? > > Nope. Note the "shift" in the first arm? It is so that the code below > can check for $#, and it indeed does, in a 'case' statement. The case statement checks $# against 1 and *, not 1 and 0. And I don't see how > 1 is valid at that point. So I can modify the case statement to check against 1, 0, and have * emit usage, or I think moving the "test $# -gt 1 && usage" to where I suggested in the last message would do the trick. The only difference would be whether a pre-rebase hook runs in the case of invalid arguments (the case statement is after that hook runs). j.