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

Re: [PATCH 4/8] rev-parse: teach "git rev-parse --symbolic" to print the full ref name

From
Steffen Prohaska <prohaska@zib.de>
Date
Oct 28, 2007, 07:58 UTC
Message-ID
<79CE31EE-0975-48EB-8B3E-FC9D6A8EB3E4@zib.de>
In-Reply-To
<7v3avvy9yc.fsf@gitster.siamese.dyndns.org>
On Oct 28, 2007, at 8:28 AM, Junio C Hamano wrote:
Show 14 quoted lines
> Steffen Prohaska <prohaska@zib.de> writes:
>
>> "git rev-parse --symbolic" used to return the ref name as it was
>> specified on the command line. This is changed to returning the
>> full matched ref name, i.e. "git rev-parse --symbolic master"
>> now typically returns "refs/heads/master".
>
> This is to expose "dwim_ref" logic, so it might be a good idea
> to introduce a new option --dwim-ref for this purpose.
>
> 	git rev-parse --symbolic master^2
>
> is designed to give "master^2" or fail if "master" is not a
> merge.

So the idea of --symbolic is really to return the argv as is? No change whatsoever allowed. Why would someone need this? Is it only for convenience when writing shell code?

Show 6 quoted lines
> Similarly, you would diagnose a failure if somebody asks
> to show
>
> 	git rev-parse --dwim-ref master~4
>
> instead of giving "refs/heads/master~4".

What I proposed is to teach git rev-parse to return a full symbolic ref name. Maybe

	git rev-parse --full-symbolic
	git rev-parse --full-ref

But honestly, I don't care that much about this patch. Maybe we just put it aside?

Show 10 quoted lines
>> +static void show_rev(int type, const unsigned char *sha1, const  
>> char *name, const char* real_name)
>> @@ -131,7 +133,7 @@ static void show_default(void)
>>
>>  		def = NULL;
>>  		if (!get_sha1(s, sha1)) {
>> -			show_rev(NORMAL, sha1, s);
>> +			show_rev(NORMAL, sha1, s, 0);
>
> A null pointer constant in git sources is spelled "NULL" not "0".
Ok. I'll fix this in all patches.
Show 11 quoted lines
>> @@ -213,6 +215,7 @@ int cmd_rev_parse(int argc, const char **argv,  
>> const char *prefix)
>>  {
>>  	int i, as_is = 0, verify = 0;
>>  	unsigned char sha1[20];
>> +	char* real_name = 0;
>
> Pointer sign '*' in git sources go next to the name not the
> type, as:
>
> 	char *real_name = NULL;

I know and I tried hard to follow this convention, although I think its the wrong choice ;)

	Steffen
Previous: Junio C HamanoNext: Shawn O. Pearce
Message 28 of 36 in “improve push's refspec handling”
  1. 0/8 improve push's refspec handlingSteffen Prohaska, Oct 27, 2007
  2. 1/8 push: change push to fail if short ref name does not existSteffen Prohaska, Oct 27, 2007
  3. 2/8 push: teach push new flag --createSteffen Prohaska, Oct 27, 2007
  4. 3/8 add get_sha1_with_real_ref() returning full name of ref on demandSteffen Prohaska, Oct 27, 2007
  5. 4/8 rev-parse: teach "git rev-parse --symbolic" to print the full ref nameSteffen Prohaska, Oct 27, 2007
  6. 5/8 push, send-pack: support pushing HEAD to real ref nameSteffen Prohaska, Oct 27, 2007
  7. 6/8 add ref_cmp_full_short() comparing full ref name with a short nameSteffen Prohaska, Oct 27, 2007
  8. 7/8 push: use same rules as git-rev-parse to resolve refspecsSteffen Prohaska, Oct 27, 2007
  9. 8/8 push: teach push to be quiet if local ref is strict subset of remote refSteffen Prohaska, Oct 27, 2007
  10. Junio C HamanoOct 28, 2007
  11. Steffen ProhaskaOct 28, 2007
  12. Junio C HamanoOct 28, 2007
  13. Daniel BarkalowOct 27, 2007
  14. Junio C HamanoOct 28, 2007
  15. Daniel BarkalowOct 27, 2007
  16. Junio C HamanoOct 28, 2007
  17. Steffen ProhaskaOct 28, 2007
  18. Steffen ProhaskaOct 28, 2007
  19. Junio C HamanoOct 28, 2007
  20. Steffen ProhaskaOct 28, 2007
  21. Junio C HamanoOct 28, 2007
  22. Steffen ProhaskaOct 28, 2007
  23. Junio C HamanoOct 28, 2007
  24. Steffen ProhaskaOct 31, 2007
  25. Daniel BarkalowOct 27, 2007
  26. Steffen ProhaskaOct 28, 2007
  27. Junio C HamanoOct 28, 2007
  28. Steffen ProhaskaOct 28, 2007
  29. Shawn O. PearceOct 28, 2007
  30. Steffen ProhaskaOct 28, 2007
  31. Brian GernhardtOct 28, 2007
  32. Junio C HamanoOct 28, 2007
  33. Junio C HamanoOct 28, 2007
  34. Daniel BarkalowOct 27, 2007
  35. Junio C HamanoOct 28, 2007
  36. Steffen ProhaskaOct 28, 2007

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.