git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v3 2/6] t5541-http-push.sh: add test for unmatched, non-fast-forwarded refs

From
Tay Ray Chuan <rctay89@gmail.com>
Date
Jan 6, 2010, 02:12 UTC
Message-ID
<be6fef0d1001051812nce6ab9aic3cd71e2e5188c1a@mail.gmail.com>
In-Reply-To
<7viqbgoxgg.fsf@alter.siamese.dyndns.org>
Hi,
On Wed, Jan 6, 2010 at 9:04 AM, Junio C Hamano <gitster@pobox.com> wrote:
Show 37 quoted lines
> Tay Ray Chuan <rctay89@gmail.com> 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 <rctay89@gmail.com>
>> ---
>>  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
Previous: Junio C Hamano
Message 25 of 25 in “refactor ref status logic for pushing”
  1. 1/3 refactor ref status logic for pushingTay Ray Chuan, Dec 4, 2009
  2. 0/3 transport: catch non-fast-forwardsTay Ray Chuan, Dec 8, 2009
  3. 1/3 refactor ref status logic for pushingTay Ray Chuan, Dec 8, 2009
  4. Daniel BarkalowDec 8, 2009
  5. Tay Ray ChuanDec 9, 2009
  6. Daniel BarkalowDec 9, 2009
  7. 2/3 transport.c::transport_push(): make ref status affect return valueTay Ray Chuan, Dec 8, 2009
  8. 3/3 transport-helper.c::push_refs(): emit "no refs" error messageTay Ray Chuan, Dec 8, 2009
  9. 0/6 transport: catch non-fast forwardsTay Ray Chuan, Dec 24, 2009
  10. 1/6 t5541-http-push.sh: add tests for non-fast-forward pushesTay Ray Chuan, Dec 24, 2009
  11. 2/6 t5541-http-push.sh: add test for unmatched, non-fast-forwarded refsTay Ray Chuan, Dec 24, 2009
  12. 3/6 refactor ref status logic for pushingTay Ray Chuan, Dec 24, 2009
  13. 4/6 transport.c::transport_push(): make ref status affect return valueTay Ray Chuan, Dec 24, 2009
  14. 5/6 transport-helper.c::push_refs(): ignore helper-reported status if ref is not to be pushedTay Ray Chuan, Dec 24, 2009
  15. 6/6 transport-helper.c::push_refs(): emit "no refs" error messageTay Ray Chuan, Dec 24, 2009
  16. Jeff KingJan 5, 2010
  17. Tay Ray ChuanJan 5, 2010
  18. Jeff KingJan 6, 2010
  19. Tay Ray ChuanJan 6, 2010
  20. Tay Ray ChuanJan 8, 2010
  21. Jeff KingJan 5, 2010
  22. Tay Ray ChuanJan 5, 2010
  23. Jeff KingJan 6, 2010
  24. Junio C HamanoJan 6, 2010
  25. Tay Ray ChuanJan 6, 2010

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.