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

Re: git pull opinion

From
Steven Grimm <koreth@midwinter.com>
Date
Nov 6, 2007, 00:37 UTC
Message-ID
<1922673A-C57E-4C10-BAB0-5853B8499164@midwinter.com>
In-Reply-To
<7vd4uomfn8.fsf@gitster.siamese.dyndns.org>
On Nov 5, 2007, at 3:33 PM, Junio C Hamano wrote:
Show 8 quoted lines
> Aghiles <aghilesk@gmail.com> writes:
>
>> Is there an "easier" way to pull into a dirty directory ? I am
>> asking this to make sure I understand the problem and not
>> because I find it annoying to type those 4 commands to perform
>> a pull (although some of my colleagues do find that annoying :).
>
> You need to switch your mindset from centralized SVN workflow.

I don't think wanting to pull in the middle of one's work has anything to do with centralized vs. decentralized, actually, though I do agree that it's a question of workflow.

For maybe 80% of my work, I do things "the git way" (lots of little local commits) and only sync up with other people when I've reached a good stopping point. Those are cases where I'm working in isolation on a new feature or a fix and will publish it as a whole unit when I'm done.

But the other 20% of the time, I'm working closely with another person. For example, I might be working with a front-end developer who is writing some nice snazzy JavaScript or Flash UI code to talk to my server-side code. And in that case, I really do want to be able to pull down his latest changes while I'm still in the middle of working on my own stuff, not least because it's only by testing with the real client -- where the button to invoke a particular piece of code on my side has just been added in the last 2 minutes -- that I can decide whether my work in progress is actually functional or not. (Unit tests only get you partway there.)

In other words, for traditional open-source-style distributed development where each repository is an isolated island that goes off and does its own thing, ignoring the outside world, the recommended git workflow is totally appropriate. It's also appropriate for a lot of in-house non-distributed development.

But for some classes of collaboration, where two or more people are essentially editing the same code base to work on the same feature and their changes are highly interdependent, that workflow is next to useless. There *is* no "I've gotten my code working and am ready to look at other people's changes now" stage until pretty late in the game. This kind of workflow happens a lot in commercial development in my experience.

Before git-stash, I did a lot of "commit; fetch; rebase; reset" sequences to support this kind of tight collaboration. Now it's "stash; fetch; rebase; unstash" which is the same number of commands but is semantically clearer. "fetch; rebase --dirty" or "pull --dirty - s rebase" will be nicer.

-Steve
Previous: Linus TorvaldsNext: Aghiles
Message 25 of 43 in “git pull opinion”
  1. AghilesNov 5, 2007
  2. Jakub NarebskiNov 5, 2007
  3. Johannes SchindelinNov 6, 2007
  4. AghilesNov 6, 2007
  5. Johannes SchindelinNov 6, 2007
  6. Junio C HamanoNov 6, 2007
  7. Johannes SchindelinNov 6, 2007
  8. Alex RiesenNov 5, 2007
  9. Junio C HamanoNov 5, 2007
  10. Bill LearNov 6, 2007
  11. Pierre HabouzitNov 6, 2007
  12. Alex RiesenNov 6, 2007
  13. Pierre HabouzitNov 6, 2007
  14. Andreas EricssonNov 6, 2007
  15. Johannes SchindelinNov 6, 2007
  16. Andreas EricssonNov 6, 2007
  17. Johannes SchindelinNov 6, 2007
  18. Andreas EricssonNov 6, 2007
  19. AghilesNov 6, 2007
  20. Alex RiesenNov 6, 2007
  21. Linus TorvaldsNov 6, 2007
  22. AghilesNov 7, 2007
  23. Johannes SchindelinNov 8, 2007
  24. Linus TorvaldsNov 10, 2007
  25. Steven GrimmNov 6, 2007
  26. AghilesNov 6, 2007
  27. Miklos VajnaNov 5, 2007
  28. AghilesNov 6, 2007
  29. Benoit SigoureNov 6, 2007
  30. Ralf WildenhuesNov 6, 2007
  31. Johannes SchindelinNov 6, 2007
  32. Ralf WildenhuesNov 6, 2007
  33. AghilesNov 6, 2007
  34. Pierre HabouzitNov 6, 2007
  35. Mark 'git stash [message...]' as deprecatedBrian Downing, Nov 7, 2007
  36. Disable implicit 'save' argument for 'git stash'Brian Downing, Nov 7, 2007
  37. Johannes SixtNov 7, 2007
  38. Wincent ColaiutaNov 7, 2007
  39. Junio C HamanoNov 7, 2007
  40. Pierre HabouzitNov 7, 2007
  41. Pascal ObryNov 6, 2007
  42. Uwe Kleine-KönigNov 7, 2007
  43. Pascal ObryNov 7, 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.