Re: [PATCH] Cross-reference the manpages for git-name-rev and git-describe
- From
Junio C Hamano <junkio@cox.net>
- Date
- May 22, 2007, 06:13 UTC
- Message-ID
- <7vhcq59yiy.fsf@assigned-by-dhcp.cox.net>
- In-Reply-To
- <20070521072025.GO3141@spearce.org>
"Shawn O. Pearce" <spearce@spearce.org> writes:
Show 38 quoted lines
> Teach git-describe how to run name-rev
>
> Often users want to know not which tagged version a commit came
> after, but which tagged version a commit is contained within.
> This latter task is the job of git-name-rev, but most users are
> looking to git-describe to do the job.
>
> Junio suggested we make `git describe --contains` run the correct
> tool, `git name-rev`, and that's exactly what we do here. The output
> of name-rev was adjusted slightly through the new --name-only option,
> allowing describe to execv into name-rev and maintain its current
> output format.
>
> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
> ...
> diff --git a/builtin-describe.c b/builtin-describe.c
> index 165917e..efbd43f 100644
> --- a/builtin-describe.c
> +++ b/builtin-describe.c
> ...
> @@ -272,6 +276,17 @@ int cmd_describe(int argc, const char **argv, const char *prefix)
>
> save_commit_buffer = 0;
>
> + if (contains) {
> + const char **nr = xmalloc((4 + argc - i) * sizeof(char*));
> + nr[0] = "name-rev";
> + nr[1] = "--name-only";
> + nr[2] = "--tags";
> + memcpy(nr + 3, argv + i, (argc - i) * sizeof(char*));
> + nr[3 + argc - i] = NULL;
> + execv_git_cmd(nr);
> + die("unable to start %s", nr[0]);
> + }
> +
> if (argc <= i)
> describe("HEAD", 1);
> elseSorry for a belated question, but is there a reason not to do this (on top)?
diff --git a/builtin-describe.c b/builtin-describe.c index efbd43f..2a32af6 100644 --- a/builtin-describe.c +++ b/builtin-describe.c @@ -283,8 +283,7 @@ int cmd_describe(int argc, const char **argv, const char *prefix) nr[2] = "--tags"; memcpy(nr + 3, argv + i, (argc - i) * sizeof(char*)); nr[3 + argc - i] = NULL; - execv_git_cmd(nr); - die("unable to start %s", nr[0]); + return cmd_name_rev(3 + argc - i, nr, prefix); } if (argc <= i)