Re: [PATCH 2/2] [TopGit] Portability: Don't use alternation ("|") in sed regular expressions
- From
Brian Campbell <brian.p.campbell@dartmouth.edu>
- Date
- Mar 12, 2009, 15:00 UTC
- Message-ID
- <78BA729B-0026-45D0-96FC-330700519AAB@dartmouth.edu>
- In-Reply-To
- <20090312074524.GA14844@pengutronix.de>
On Mar 12, 2009, at 3:45 AM, Uwe Kleine-König wrote:
Show 5 quoted lines
>> - You will be utterly confused by a local branch whose name is >> "refs/top-bases/foo" > You mean a branch that has the full name refs/heads/refs/top-bases/ > foo? > Well OK, valid concern.
Yes, you're right, this is a problem.
Show 21 quoted lines
>> To fix these, you might want to do something like:
>>
>> if head_=$(git symbolic-ref HEAD)
>> then
>> case "$head_" in
>> refs/heads/*)
>> echo "${head_#refs/heads/}"
>> ;;
>> refs/top-bases/*)
>> echo "${head_#refs/top-bases/}"
>> ;;
>> *)
>> echo "$head_"
>> ;;
>> esac
>> else
>> whatever you want to do on a detached HEAD
>> fi
> Thanks Junio and Brian.
>
> Brian, do you update the series?Sure, I'll send an updated patch.
I'm thinking that for the detached HEAD case, this function should die with a message about not being on a valid branch, and then the call site in tg-summary that doesn't care about being on a valid branch should ignore the error and leave curname empty. Does that sound about right? I'm fairly new to doing Bourne shell scripting, so I don't yet have a good sense of how these things should be structured.
Also, has anyone considered writing a test suite for TopGit? I actually got fairly deep in to a series of 10 or so patches before I hit these problems, since tg-create worked fine as long as I only supplied one dependency, and I didn't notice the second issue until I tried to do a tg-update after modifying one of my base patches.
-- Brian