From: Jeff King <peff@peff.net>
To: Kaartic Sivaraam <kaartic.sivaraam@gmail.com>
Cc: Eric Sunshine <sunshine@sunshineco.com>,
Git mailing list <git@vger.kernel.org>
Subject: Re: [PATCH] branch -l: print useful info whilst rebasing a non-local branch
Date: Sun, 25 Mar 2018 00:10:57 -0400 [thread overview]
Message-ID: <20180325041056.GA22321@sigill.intra.peff.net> (raw)
In-Reply-To: <87ea8cac-c745-b7e6-7804-5116cd94ed48@gmail.com>
On Sun, Mar 25, 2018 at 09:11:34AM +0530, Kaartic Sivaraam wrote:
> >> When rebasing interacitvely (rebase -i), "git branch -l" prints a line
> >
> > The "git branch -l" threw me since "-l" is short for --create-reflog.
> > I'm guessing you meant "git branch --list".
>
> That's surprising, I just tried "git branch -l" on a repository and I
> did get a list of branch names. Is this a consequence of some option
> parsing weirdness ?!
Sort of. The "-l" option causes us to set the "reflog" variable to 1.
And then we have no other command-line options, so we default to
"--list" mode. The listing code does not look at the "reflog" variable
at all, so it's just silently ignored.
So:
git branch -l
_looks_ like it works, but only because list mode is the default. If you
did:
git branch -l foo
you would find that it does list "foo" at all, but instead creates a new
branch "foo" with reflog.
> To be honest, I actually assumed "-l" to be a shorthand for "--list" and
> didn't check with it in the documentation; which I should have. Sorry,
> for that. I still wonder why "git branch -l" prints a list of branch
> names when it is not a shorthand for "--list" ? (BTW, I'm also surprised
> by the fact that "-l" is not act shorthand for "--list"!)
It's historical and quite unfortunate. Doubly so since probably nobody
has ever actually wanted to use the short "-l" to create a reflog, since
it's typically the default and has been for a decade.
We've been hesitant to change it due to backwards compatibility. While
"branch" is generally considered porcelain, it probably is the main
scripting interface for creating branches (the only other option would
be using "update-ref" manually). So I dunno. Maybe it would be OK to
transition.
Alternatively, we could at least detect the situation that confused you:
diff --git a/builtin/branch.c b/builtin/branch.c
index 6d0cea9d4b..89e7fdc89c 100644
--- a/builtin/branch.c
+++ b/builtin/branch.c
@@ -676,6 +676,9 @@ int cmd_branch(int argc, const char **argv, const char *prefix)
colopts = 0;
}
+ if (list && reflog)
+ die(_("--reflog in list mode does not make sense"));
+
if (force) {
delete *= 2;
rename *= 2;
That doesn't help somebody mistakenly doing "git branch -l foo", but
more likely they'd do "git branch -l jk/*" if they were trying to list
branches (and then "branch" would barf with "that's not a valid branch
name", though that may still leave them quite confused).
-Peff
next prev parent reply other threads:[~2018-03-25 4:11 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-03-24 18:38 [PATCH] branch -l: print useful info whilst rebasing a non-local branch Kaartic Sivaraam
2018-03-25 1:34 ` Eric Sunshine
2018-03-25 3:41 ` Kaartic Sivaraam
2018-03-25 4:10 ` Jeff King [this message]
2018-03-25 4:13 ` Eric Sunshine
2018-03-25 4:28 ` Eric Sunshine
2018-03-25 4:33 ` Jeff King
2018-03-25 6:54 ` Kaartic Sivaraam
2018-03-25 7:15 ` Jacob Keller
2018-03-26 7:25 ` Jeff King
2018-03-26 7:26 ` [PATCH 1/5] t3200: unset core.logallrefupdates when testing reflog creation Jeff King
2018-03-26 7:26 ` [PATCH 2/5] t: switch "branch -l" to "branch --create-reflog" Jeff King
2018-03-26 7:28 ` [PATCH 3/5] branch: deprecate "-l" option Jeff King
2018-03-26 7:29 ` [PATCH 4/5] branch: drop deprecated " Jeff King
2018-03-26 7:29 ` [PATCH 5/5] branch: make "-l" a synonym for "--list" Jeff King
2018-03-26 7:44 ` [PATCH] branch -l: print useful info whilst rebasing a non-local branch Eric Sunshine
2018-03-26 18:38 ` Jacob Keller
2018-03-25 17:06 ` Junio C Hamano
2018-03-25 5:48 ` Eric Sunshine
2018-03-25 7:36 ` Kaartic Sivaraam
2018-04-03 4:31 ` [PATCH v2 1/2] branch --list: print useful info whilst interactive rebasing a detached HEAD Kaartic Sivaraam
2018-04-03 4:31 ` [PATCH v2 2/2] t3200: verify "branch --list" sanity when rebasing from " Kaartic Sivaraam
2018-04-03 8:00 ` Eric Sunshine
2018-04-03 12:58 ` Kaartic Sivaraam
2018-04-03 14:47 ` [PATCH v3 " Kaartic Sivaraam
2018-04-04 8:09 ` Eric Sunshine
2018-04-03 5:02 ` [PATCH v2 0/2] branch --list: print useful info whilst interactive rebasing a " Kaartic Sivaraam
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180325041056.GA22321@sigill.intra.peff.net \
--to=peff@peff.net \
--cc=git@vger.kernel.org \
--cc=kaartic.sivaraam@gmail.com \
--cc=sunshine@sunshineco.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).