From: Junio C Hamano Date: Wed, 20 Aug 2008 22:22:21 GMT Subject: Re: [PATCH] Extend "checkout --track" DWIM to support more cases Message-ID: <7vd4k3nx7m.fsf@gitster.siamese.dyndns.org> In-Reply-To: <20080820202952.GH16626@blimp.local> Alex Riesen writes: > Johannes Schindelin, Wed, Aug 20, 2008 22:16:19 +0200: >> > >> > No. It strips refs/ OR remotes/ (because of prefixcmp with argv[0]). >> > And I still wanted refs//something... >> >> Yes, you are correct. However, to fix my thinko, I deem this preferable: >> >> -- snipsnap -- >> >> builtin-checkout.c | 6 ++++-- >> 1 files changed, 4 insertions(+), 2 deletions(-) >> >> diff --git a/builtin-checkout.c b/builtin-checkout.c >> index e95eab9..2a076cf 100644 >> --- a/builtin-checkout.c >> +++ b/builtin-checkout.c >> @@ -448,8 +448,10 @@ int cmd_checkout(int argc, const char **argv, const char *prefix) >> if (!argc || !strcmp(argv[0], "--")) >> die ("--track needs a branch name"); >> slash = strchr(argv[0], '/'); >> - if (slash && !prefixcmp(argv[0], "refs/")) >> - slash = strchr(slash + 1, '/'); >> + if (slash && !prefixcmp(argv[0], "refs/")) { >> + argv[0] = slash + 1; >> + slash = strchr(argv[0], '/'); >> + } > > Yes, I agree (and its shorter). The git-checkout manpage can be > improved, too (no DWIM is obvious, except may be for the implementor). I think that makes sense. Care to send an appliable patch with documentation updates, please?