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

Re: FFmpeg considering GIT

From
Linus Torvalds <torvalds@linux-foundation.org>
Date
May 5, 2007, 04:15 UTC
Message-ID
<alpine.LFD.0.98.0705042106370.3819@woody.linux-foundation.org>
In-Reply-To
<20070504202448.GD14859@MichaelsNB>
On Fri, 4 May 2007, Michael Niedermayer wrote:
Show 7 quoted lines
> 
> we have a nice svn policy which explains that, also people wont receive
> write access without having submitted a few clean patches first
> so i dont know if more education would really help, the problems are IMHO
> rather caused by a mix of lazyness, arrogance and plain oversight
> but please dont missunderstand, these problems are not that common, its
> rather once every few month
[ I was away for a few days, so others probably answered already ... ]

With git, the right way to do thigns is to not ever give "write access" to the "standard" tree to developers, but to make each developer have their own tree, and then one or more developers are the ones that merge other peoples work.

Since I'm the one who does the merging for the kernel, I've made damn sure that merging other peoples work is as easy as humanly possible, so that I can just sit there, sipping my foofy tropical drink, drunk as a skunk and enjoying every moment of seeing my peons work their little fingers to the bone, when I do a "git pull ..." and in two seconds I've downloaded their work and merged it, and I can take another sip of the Piña Colada.

Burp.

And git also makes it really easy to see when somebody does something stupid. The one thing it always shows to the person doing the merging is the diffstat from the result, so if somebody re-indented the source base, the merger goes "Whaa", and assuming he's not too drunk to type, he should just send a sternly worded message to the developer who did the bad deed, and tell them that their work was unacceptable, and won't be pulled.

A simple "git reset --hard ORIG_HEAD" will undo the merge, so the person(s) who actually does the integration again doesn't actually have to work all that hard.

In other words, the proper sequence really should be to *not* let the horribly buggy commits into the standard version in the first place! Sure, individual developers will make mistakes, but the fact that they screwed up should in _no_ way mean that they can screw up the main repository. The whole point in being distributed is that developers can screw up in their own _private_ repositories and still have all the power of a proper SCM tool, but without actually getting to screw up the main repo.

(And yes, then very occasionally both the developer *and* the maintainer screws up, and something bad gets through, and yeah, then you need to revert, but the point I'm arguing is that with a fairly good flow of development, you don't have to worry about the more clueless people screwing up - they can still do development, and you can still pull from them, but *if* they screw up, you can tell them to clean up their mess *before* you actually put it into any standard tree, and the mess can be entirely their _local_ mistake and never visible anywhere else).

			Linus
Previous: Michael NiedermayerNext: Karl Hasselström
Message 30 of 66 in “FFmpeg considering GIT”
  1. Panagiotis IssarisMay 2, 2007
  2. Jakub NarebskiMay 2, 2007
  3. Petr BaudisMay 3, 2007
  4. Jakub NarebskiMay 4, 2007
  5. [RFC?] Telling git about more complex relationships between commits (Was: Re: FFmpeg considering GIT)Johan Herland, May 4, 2007
  6. Alex RiesenMay 4, 2007
  7. Andy ParkinsMay 4, 2007
  8. Andrew RuderMay 4, 2007
  9. Johan HerlandMay 4, 2007
  10. Johan HerlandMay 4, 2007
  11. Alex RiesenMay 4, 2007
  12. Johan HerlandMay 5, 2007
  13. Alex RiesenMay 5, 2007
  14. Johan HerlandMay 5, 2007
  15. Petr BaudisMay 4, 2007
  16. Johan HerlandMay 4, 2007
  17. Martin LanghoffMay 3, 2007
  18. Uwe Kleine-KönigMay 3, 2007
  19. Petr BaudisMay 3, 2007
  20. david@lang.hmMay 3, 2007
  21. Petr BaudisMay 3, 2007
  22. Michael NiedermayerMay 4, 2007
  23. Andy ParkinsMay 4, 2007
  24. Johannes SixtMay 4, 2007
  25. Florian WeimerMay 4, 2007
  26. Nicolas PitreMay 4, 2007
  27. Carl WorthMay 4, 2007
  28. Johan HerlandMay 4, 2007
  29. Michael NiedermayerMay 4, 2007
  30. Linus TorvaldsMay 5, 2007
  31. Karl HasselströmMay 5, 2007
  32. Linus TorvaldsMay 5, 2007
  33. Linus TorvaldsMay 5, 2007
  34. Linus TorvaldsMay 5, 2007
  35. Junio C HamanoMay 6, 2007
  36. Paul MackerrasMay 7, 2007
  37. Karl HasselströmMay 7, 2007
  38. Johan HerlandMay 7, 2007
  39. Alex RiesenMay 7, 2007
  40. Marco CostalbaMay 8, 2007
  41. Paul MackerrasMay 9, 2007
  42. Marco CostalbaMay 9, 2007
  43. Robin RosenbergMay 9, 2007
  44. Jan HudecMay 9, 2007
  45. Fredrik KuivinenMay 9, 2007
  46. Jan HudecMay 9, 2007
  47. Marco CostalbaMay 10, 2007
  48. Jan HudecMay 10, 2007
  49. Jan HudecMay 7, 2007
  50. Gábor FarkasMay 7, 2007
  51. Randal L. SchwartzMay 7, 2007
  52. Junio C HamanoMay 7, 2007
  53. Shawn O. PearceMay 8, 2007
  54. Jeff KingMay 8, 2007
  55. Karl HasselströmMay 6, 2007
  56. Karl HasselströmMay 6, 2007
  57. Linus TorvaldsMay 6, 2007
  58. Marco CostalbaMay 6, 2007
  59. Karl HasselströmMay 6, 2007
  60. Marco CostalbaMay 6, 2007
  61. Karl HasselströmMay 6, 2007
  62. Marco CostalbaMay 6, 2007
  63. Karl HasselströmMay 6, 2007
  64. Karl HasselströmMay 6, 2007
  65. Pavel RoskinMay 9, 2007
  66. Gábor FarkasMay 8, 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.