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

Re: question concerning branches

From
Johannes Sixt <j.sixt@viscovery.net>
Date
Aug 20, 2009, 13:47 UTC
Message-ID
<4A8D53F3.3050500@viscovery.net>
In-Reply-To
<4a8d4583@wupperonline.de>
[Please don't cull the Cc list.]
Ingo Brueckl schrieb:
> On the one hand, I want to add single new features (such as other developers
> do) which will be written, tested and committed. I want to push/pull
> frequently to be up to date all the time. (master branch)

If you want to stay up-to-date while you are creating a new feature, then your workflow is sub-optimal. This message by Linus is good to read:

http://www.mail-archive.com/dri-devel@lists.sourceforge.net/msg39091.html
The important rule is "Don't merge upstream code at random points".

Once you learnt this rule, then you also see that it is not important to always stay up-to-date. It is important to complete (test, debug) your feature on a stable base. During that time, you don't care about upstream; you care about your feature.

> In a branch, I learned, I have to commit or stash before I return to master
> for push/pull to follow the project. If I forget, I'm screwed, because files
> have changed due to the rewrite (in that branch), I won't get a warning until
> my first commit (in that branch) and commits (in master) will conflict.

You are obviously of a CVS or SVN mindset, where making a commit is such an important operation that you don't dare to make it until your work is *completed*.

With a git mindset, it won't happen that you "forget" whether you have anything uncommitted; you simply never have because committing half-baked stuff is the rule, not the exception. That is, before you get a cup of coffee, you commit; before you answer a phone call, you commit; before you turn your attention away, you commit. (That may be exaggerated, perhaps it even isn't, but you get the point.)

When you have completed your work, you go back to make your commit history look nice, comprehensible, and bisectable.

And only then comes the heavy operation: You publish your work for consumption by interested parties. This may be even only you yourself: "Consumption" would be to merge the work into your release branch. This is the right time to care about upstream again.

-- Hannes
Previous: Ingo BruecklNext: Jakub Narebski
Message 17 of 21 in “question concerning branches”
  1. Ingo BruecklAug 19, 2009
  2. Bruce StephensAug 19, 2009
  3. Avery PennarunAug 19, 2009
  4. Ingo BruecklAug 19, 2009
  5. Jakub NarebskiAug 19, 2009
  6. Ingo BruecklAug 19, 2009
  7. Avery PennarunAug 19, 2009
  8. Matthieu MoyAug 20, 2009
  9. Jacob HelwigAug 19, 2009
  10. Jakub NarebskiAug 19, 2009
  11. Theodore TsoAug 19, 2009
  12. Jakub NarebskiAug 19, 2009
  13. Theodore TsoAug 20, 2009
  14. Linus TorvaldsAug 19, 2009
  15. Randal L. SchwartzAug 20, 2009
  16. Ingo BruecklAug 20, 2009
  17. Johannes SixtAug 20, 2009
  18. Jakub NarebskiAug 20, 2009
  19. Junio C HamanoAug 19, 2009
  20. Ingo BruecklAug 19, 2009
  21. Andreas EricssonAug 20, 2009

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.