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
Junio C Hamano <gitster@pobox.com>
Date
Oct 28, 2007, 07:28 UTC
Message-ID
<7v3avvy9yc.fsf@gitster.siamese.dyndns.org>
In-Reply-To
<11935038083369-git-send-email-prohaska@zib.de>
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. 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".
Show 7 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".
Show 5 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;
Previous: Steffen ProhaskaNext: Steffen Prohaska
Message 27 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.