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

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, 16:41 UTC
Message-ID
<F3665462-16BC-42D6-BE28-F66CF48CEB9B@dartmouth.edu>
In-Reply-To
<20090312152039.GA15626@pengutronix.de>
On Mar 12, 2009, at 11:20 AM, Uwe Kleine-König wrote:
>>>> To fix these, you might want to do something like:
>>>>
>>>> 	if head_=$(git symbolic-ref HEAD)
> Shouldn't git symbolic-ref -q HEAD be used here?
Yes, most likely.
Show 19 quoted lines
>>>>       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
> How do I  distinguish between a detached HEAD and another error?  I  
> have
> the feeling that git symbolic-ref -q HEAD should exit(0) with a  
> detached
> HEAD.

If you pass -q, it exits with status 1 on a detached head, 128 on other errors, so we can use that to distinguish.

Show 15 quoted lines
>
>>> 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?
> mmh, I would return "" and let the caller handle that.
Fair enough.
>> Also, has anyone considered writing a test suite for TopGit?
> Yes, but I didn't found the time for that until now.  If you'd  
> volunteer
> that would be very welcome.

I would, but I'm not sure I'll be continuing to use TopGit for more than the one patch series I'm using it for now; I was trying it out, but it feels a little more heavy-weight than what I want. StGIT or just rewriting a patch series with git rebase -i works better for my uses; I'm not maintaining a lot of long-lived topic branches upon which I need full history.

> IMHO we should reuse as much as possible from git.git.  For me even
> requiring a git.git checkout to use its files would be OK.  I consider
> that even better then duplicating the relevant files.

Hmm. How would the tests find your git working tree? I'd be willing to start the process off at least by writing test cases for the functionality I'm changing here if I had a good idea of how to start. Would it be sufficient to make something like "GIT_CHECKOUT=~/src/git make check" work?

-- Brian
Previous: Uwe Kleine-KönigNext: Uwe Kleine-König
Message 10 of 12 in “[TopGit] Portability: Use tr instead of sed for translating spaces to newlines”
  1. 1/2 [TopGit] Portability: Use tr instead of sed for translating spaces to newlinesBrian Campbell, Mar 12, 2009
  2. 2/2 [TopGit] Portability: Don't use alternation ("|") in sed regular expressionsBrian Campbell, Mar 12, 2009
  3. Junio C HamanoMar 12, 2009
  4. Uwe Kleine-KönigMar 12, 2009
  5. Brian CampbellMar 12, 2009
  6. Uwe Kleine-KönigMar 12, 2009
  7. martin f krafftMar 12, 2009
  8. Junio C HamanoMar 14, 2009
  9. Uwe Kleine-KönigMar 14, 2009
  10. Brian CampbellMar 12, 2009
  11. Uwe Kleine-KönigMar 12, 2009
  12. Uwe Kleine-KönigMar 12, 2009

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.