Re: git-rev-parse --symbolic-abbrev-name

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



"Arnaud Lacombe" <lacombar@xxxxxxxxx> writes:

> You'll find hereafter two patches which implements this in
> git-symbolic-ref and git-rev-parse. Feel free to choose the one you
> find the best. If you choose to integrate one of these, tells me and
> I'll do a proper documentation bits and patch submission.

> diff --git a/builtin-rev-parse.c b/builtin-rev-parse.c
> index 81d5a6f..70f4a33 100644
> --- a/builtin-rev-parse.c
> +++ b/builtin-rev-parse.c
> @@ -24,6 +24,7 @@ static int show_type = NORMAL;
>  
>  #define SHOW_SYMBOLIC_ASIS 1
>  #define SHOW_SYMBOLIC_FULL 2
> +#define SHOW_SYMBOLIC_SHORT 3
>  static int symbolic;
>  static int abbrev;
>  static int output_sq;

I think --symbolic-short makes the most sense.

> @@ -125,13 +129,20 @@ static void show_rev(int type, const unsigned char *sha1, const char *name)
>  				 */
>  				break;
>  			case 1: /* happy */
> +				if (symbolic == SHOW_SYMBOLIC_SHORT) {
> +					char *p;
> +					p = strrchr(full, (int)'/');
> +					if (p != NULL)
> +						full = p + 1;
> +				}

However, this is not a good way to do it, I suspect.  This patch most
likely will be queued to the al/symbolic-short topic branch, but you are
losing information here.  You'd probably want to try substings from the
tail of the full name (e.g. symbolic-short, al/symbolic-short,
heads/al/symbolic-short, and finally refs/heads/al/symbolic-short) and
feed them to dwim_ref() and pick the shortest one that yields the same ref
unambiguously, or something like that.

By the way, I do not see why you need to cast '/'.
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux