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

Re: [RFC/PATCH] git-branch: default to --track

From
Junio C Hamano <gitster@pobox.com>
Date
Jul 8, 2007, 08:59 UTC
Message-ID
<7vhcof2rur.fsf@assigned-by-dhcp.cox.net>
In-Reply-To
<Pine.LNX.4.64.0707062252390.4093@racer.site>
Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
> "git branch --track" will setup config variables when branching from 
> a remote branch, so that if you say "git pull" while being on that
> branch, it automatically fetches the correct remote, and merges the
> correct branch.

While I think it would have been the right thing to do if the code did this only for a remote branch, I think there is a bug somewhere. I just saw this:

	... some random changes ...
        master$ git commit -a -s -m 'Some work meant for topic.'
        master$ git branch jc/new-topic
	Branch jc/new-topic set up to track local branch refs/heads/master
Eh?  I did not want this to get applied for my local branches.

The intention of the above command sequence was to do a branch and then "reset --hard HEAD^" to rewind the 'master', as if I did not commit but instead did "checkout -b jc/new-topic && commit && checkout master".

But "checkout -b jc/newtopic" has the same problem, as it eventually uses the same "git-branch" that defaults to --track even for a case where I branch off of a local branch.

I do not necessarily think the command line --track is broken. If the user explicitly says a branch tracks a local branch, so be it. If --track comes from autosetupmerge or built-in default like your patch, however, I do not think it makes much sense to pollute the config file with useless "tracking" information.

I am very tempted to revert this, but won't do so tonight, yet.
Previous: Johannes SchindelinNext: Johannes Schindelin
Message 2 of 23 in “git-branch: default to --track”
  1. git-branch: default to --trackJohannes Schindelin, Jul 6, 2007
  2. Junio C HamanoJul 8, 2007
  3. branch.autosetupmerge: allow boolean values, or "all"Johannes Schindelin, Jul 8, 2007
  4. Junio C HamanoJul 8, 2007
  5. Johannes SchindelinJul 8, 2007
  6. Paolo BonziniJul 9, 2007
  7. Junio C HamanoJul 9, 2007
  8. branch --track: code cleanup and saner handling of local branchesJohannes Schindelin, Jul 9, 2007
  9. Junio C HamanoJul 9, 2007
  10. Johannes SchindelinJul 9, 2007
  11. Junio C HamanoJul 9, 2007
  12. 1/2 Add for_each_remote() function, and extend remote_find_tracking()Johannes Schindelin, Jul 10, 2007
  13. Daniel BarkalowJul 10, 2007
  14. Johannes SchindelinJul 10, 2007
  15. Junio C HamanoJul 10, 2007
  16. Daniel BarkalowJul 10, 2007
  17. 1/2 Add for_each_remote() function, and extend remote_find_tracking()Johannes Schindelin, Jul 10, 2007
  18. Junio C HamanoJul 10, 2007
  19. Johannes SchindelinJul 10, 2007
  20. Daniel BarkalowJul 10, 2007
  21. 2/2 branch --track: code cleanup and saner handling of local branchesJohannes Schindelin, Jul 10, 2007
  22. 2/2 branch --track: code cleanup and saner handling of local branchesJohannes Schindelin, Jul 10, 2007
  23. Johannes SchindelinJul 9, 2007

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.