From: Tay Ray Chuan Date: Wed, 06 Jan 2010 02:12:57 GMT Subject: Re: [PATCH v3 2/6] t5541-http-push.sh: add test for unmatched, non-fast-forwarded refs Message-ID: In-Reply-To: <7viqbgoxgg.fsf@alter.siamese.dyndns.org> Hi, On Wed, Jan 6, 2010 at 9:04 AM, Junio C Hamano wrote: > Tay Ray Chuan writes: > >> Test that when non-fast-forwarded refs cannot be matched without an >> explicit refspect, the push fails with a non-fast-forward ref status and >> help message. >> >> Signed-off-by: Tay Ray Chuan >> --- >>  t/t5541-http-push.sh |   20 ++++++++++++++++++++ >>  1 files changed, 20 insertions(+), 0 deletions(-) >> >> diff --git a/t/t5541-http-push.sh b/t/t5541-http-push.sh >> index f49c7c4..5ebe04a 100755 >> --- a/t/t5541-http-push.sh >> +++ b/t/t5541-http-push.sh >> @@ -111,5 +111,25 @@ Merge the remote changes before pushing again.  See the '"'non-fast-forward'"' >>  section of '"'git push --help'"' for details." output >>  ' >> >> +test_expect_failure 'push fails for non-fast-forward refs unmatched by remote helper' ' >> +     # create a dissimilarly-named ref so that git is unable to match the refs >> +     git push origin master:retsam >> + >> +     echo "change changed" > path2 && >> +     git commit -a -m path2 --amend && >> + >> +     # push master too. This ensures there is at least one '"'push'"' command to >> +     # the remote helper and triggers interaction with the helper. >> +     !(git push -v origin +master master:retsam >output 2>&1) && > > A dumb question.  Why is this done in a sub-shell? > >> + >> +     grep "^ + [a-z0-9]\+\.\.\.[a-z0-9]\+[ ]*master -> master (forced update)$" output && >> +     grep "^ ! \[rejected\][ ]*master -> retsam (non-fast-forward)$" output && > > [a-z0-9] seems too broad to catch hexadecimal. Oops, my bad. >  "\+" to introduce ERE > elements to grep that expects BRE is a GNU extension, IIRC.  You could use > egrep if you really want to say one-or-more, but I think in this case it > is better to simply replace it with a zero-or-more '*'. Ok. >  Why is a single > SP made into character class with "[ ]" pair? To make it clearer that I'm trying to match a SP. -- Cheers, Ray Chuan