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

Re: On git 1.6 (novice's opinion)

From
Junio C Hamano <gitster@pobox.com>
Date
Mar 28, 2009, 01:30 UTC
Message-ID
<7veiwi5t8j.fsf@gitster.siamese.dyndns.org>
In-Reply-To
<49CC8C90.12268.242CEFCE@Ulrich.Windl.rkdvmks1.ngate.uni-regensburg.de>
"Ulrich Windl" <ulrich.windl@rz.uni-regensburg.de> writes:
> ... Also some seemingly dangerous commands that cannot easily be undone
> should ask safety questions ("cvs merge (-j)" would also fall into that
> category.
This is slightly an interesting point.

In CVS and Subversion, "merge" (rather "update") can be a dangerous operation. You start working, you keep building, and you eventually accumulate quite a lot of changes but you still cannot see the end of the tunnel. Your changes are incomplete and you will upset others if you commit. Your changes are extensive enough that it can conflict heavily with what others have done already, and there is a high chance that you can screw up the merging but there is no easy way (unless you tar-up the whole work tree before attempting to update) to get back to the state before your merge. Damned if you commit, damned if you don't. You lose either way.

This is because you cannot have a local commit. The problem is inherent to the centralized nature of these systems.

Distributed systems are different.  Unlike CVS/Subversion's
	work work work; then
        update to merge, risk screwing up the work in progress (or almost
	finished work); then
        commit

workflow, in a distributed system, you first commit and then merge, preferably from a clean slate. You will not have to worry about screwing up the conflict resolution, because both states (what the other guy did, and what you did) are committed safely away and you can reset back to the state before you start your merge.

Previous: demerphqNext: Ulrich Windl
Message 36 of 49 in “On git 1.6 (novice's opinion)”
  1. Ulrich WindlMar 27, 2009
  2. H.Merijn BrandMar 27, 2009
  3. Ulrich WindlMar 27, 2009
  4. Etienne Vallette d'OsiaMar 27, 2009
  5. Etienne Vallette d'OsiaMar 27, 2009
  6. Dmitry PotapovMar 27, 2009
  7. Ulrich WindlMar 27, 2009
  8. Matthieu MoyMar 27, 2009
  9. Etienne Vallette d'OsiaMar 27, 2009
  10. Ulrich WindlApr 1, 2009
  11. Matthieu MoyApr 1, 2009
  12. Junio C HamanoMar 28, 2009
  13. Junio C HamanoMar 28, 2009
  14. Dmitry PotapovMar 28, 2009
  15. Russ DillMar 30, 2009
  16. Ulrich WindlApr 1, 2009
  17. Andreas EricssonApr 1, 2009
  18. Ulrich WindlApr 1, 2009
  19. Andreas EricssonApr 1, 2009
  20. Heiko VoigtApr 1, 2009
  21. Dmitry PotapovMar 27, 2009
  22. Ulrich WindlMar 27, 2009
  23. Matthieu MoyMar 27, 2009
  24. Ulrich WindlApr 1, 2009
  25. Matthieu MoyApr 1, 2009
  26. Michael J GruberMar 27, 2009
  27. Ulrich WindlMar 27, 2009
  28. Jakub NarebskiMar 27, 2009
  29. Ulrich WindlApr 1, 2009
  30. Andreas EricssonApr 1, 2009
  31. Matthieu MoyApr 1, 2009
  32. Ulrich WindlApr 1, 2009
  33. Andreas EricssonApr 1, 2009
  34. Jakub NarebskiApr 2, 2009
  35. demerphqMar 28, 2009
  36. Junio C HamanoMar 28, 2009
  37. Ulrich WindlApr 1, 2009
  38. Bryan DonlanMar 29, 2009
  39. Johannes SchindelinMar 29, 2009
  40. Ulrich WindlApr 1, 2009
  41. Ulrich WindlApr 1, 2009
  42. Andreas EricssonMar 30, 2009
  43. Ulrich WindlApr 1, 2009
  44. Andreas EricssonApr 1, 2009
  45. Ulrich WindlApr 1, 2009
  46. Andreas EricssonApr 1, 2009
  47. Ulrich WindlApr 1, 2009
  48. Andreas EricssonApr 1, 2009
  49. Kris ShannonApr 1, 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.