git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] checkout --track: make up a sensible branch name if '-b' was omitted

From
Johannes Schindelin <johannes.schindelin@gmx.de>
Date
Aug 9, 2008, 21:08 UTC
Message-ID
<alpine.DEB.1.00.0808092302520.24820@pacific.mpi-cbg.de.mpi-cbg.de>
In-Reply-To
<7vvdya55ur.fsf@gitster.siamese.dyndns.org>
Hi,
On Sat, 9 Aug 2008, Junio C Hamano wrote:
Show 18 quoted lines
> Junio C Hamano <gitster@pobox.com> writes:
> 
> > Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
> >
> >> What does the user most likely want with this command?
> >>
> >> 	$ git checkout --track origin/next
> >>
> >> Exactly.  A branch called 'next', that tracks origin's branch 'next'.
> >
> > I like this.
> >
> > An explicit --track request from the command line (as opposed to 
> > happening to have "branch.autosetupmerge" configuration) is a very 
> > good cue that what the user wants to do is not to take a peek on a 
> > detached HEAD but a more permanent playpen created.
> 
> A couple more thoughts.
At first, I liked the thoughts, but...
Show 5 quoted lines
> (1) You may not necessarily are used to --track, but may still want this
>     done.  It might not be a bad idea to associate this "local dwimming"
>     to creation of a new branch.  In other words, all of these:
> 
>     $ git checkout -b origin/next

This cannot be dwimmed, as it literally means "start a new branch called 'origin/next' from HEAD".

So it would change the current behavior would, breaking people's habits (I do "git checkout -b bla" a lot when I realize that I want to have the current changes on a new branch).

>     $ git checkout -b --track origin/next

This is a clear syntax error. By the same reasoning, we would have to allow "git add remote origin git://..."

I think allowing this would confuse the syntax, and foster unreasonable expectations.

>     $ git checkout --track origin/next
That is what my patch does.
Show 6 quoted lines
> (2) If you work with somebody else, you might not want to have the name
>     mapping to be "s|^[^/]*/||" (i.e. drop "origin/"):
> 
>     $ git remote add -f jeff $url_to_his_repository
>     $ git checkout -b [--track] jeff-next jeff/next
>     $ git checkout -b [--track] origin-next origin/next

As I said, I think you must not allow switching around the options -b and --track.

And the rest of what you describe is already supported.

Ciao, Dscho

Previous: Junio C HamanoNext: Junio C Hamano
Message 4 of 10 in “checkout --track: make up a sensible branch name if '-b' was omitted”
  1. checkout --track: make up a sensible branch name if '-b' was omittedJohannes Schindelin, Aug 9, 2008
  2. Junio C HamanoAug 9, 2008
  3. Junio C HamanoAug 9, 2008
  4. Johannes SchindelinAug 9, 2008
  5. Junio C HamanoAug 9, 2008
  6. Pieter de BieAug 9, 2008
  7. Johannes SchindelinAug 10, 2008
  8. Johannes SchindelinAug 11, 2008
  9. Junio C HamanoAug 11, 2008
  10. TarmiganAug 9, 2008

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.