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

Git vs Monotone

From
SRSverre Rabbelier <alturin@gmail.com>
Date
Jul 31, 2008, 18:13 UTC
Message-ID
<bd6139dc0807311113n50dda9f0t1aab46b724510de2@mail.gmail.com>
Heya,

I just read this blog post [0] in which one of the Pidgin devs sheds his light on their 'tool choice'. In the post he mentions the following figures:

"I don't mind the database, myself. I have 11 working copies (checkouts) from my single pidgin database (8 distinct branches, plus duplicates of the last three branches I worked on or tested with). Each clean checkout (that is, a checkout prior to running autogen.sh and building) is approximately 61 MB. If this were SVN, each working copy would be approximately 122 MB due to svn keeping a pristine copy of every file to facilitate 'svn diff' and 'svn revert' without needing to contact the server the working copy was pulled from. Now, let's add that up. For SVN, I would have 11 times 122 MB, or 1342 MB, just in working copies. For monotone, I have 11 times 61 MB for the working copies (671 MB), plus 229 MB for the database, for a grand total of 900 MB. For me, this is an excellent bargain, as I save 442 MB of disk space thanks to the monotone model. For another compelling comparison that's sure to ruffle a few feathers, let's compare to git. If I clone the git mirror of our monotone repository, I find a checkout size of 148 MB after git-repack--running git-gc also increased the size by 2 MB, but I'll stick with the initial checkout size for fairness. If I multiply this by my 11 checkouts, I will have 1628 MB. This is even more compelling for me, as I now save 728 MB of disk space with monotone."

I'm in the process of cloning the repo myself, and will check if doing a more aggressive (high --window and --depth values) repack will get us below that 148, but I'm thinking it's just that big a repo. Anyway, it seems git is getting screwed over in this post because he is not taking advantage of git's object-database-sharing capabilities. Am i right in thinking that with git-new-workdir we would end up at 61*11+148 = 819MB? (Which would actually put us below monotone by 80MB.) Not that I care much whether monotone or git is smaller in disk size, I'm just curious if we indeed offer this capability? Perhaps someone with more knowledge of git-new-workdir could shed a light?

[0] http://theflamingbanker.blogspot.com/2008/07/holy-war-of-tool-choice.html

-- Cheers,

Sverre Rabbelier
Next: Stephen R. van den Berg
Message 1 of 33 in “Git vs Monotone”
  1. Sverre RabbelierJul 31, 2008
  2. Stephen R. van den BergJul 31, 2008
  3. Petr BaudisJul 31, 2008
  4. Jeff KingJul 31, 2008
  5. Craig L. ChingJul 31, 2008
  6. Sverre RabbelierJul 31, 2008
  7. Jeff KingJul 31, 2008
  8. Linus TorvaldsJul 31, 2008
  9. Craig L. ChingJul 31, 2008
  10. Linus TorvaldsJul 31, 2008
  11. Junio C HamanoJul 31, 2008
  12. Linus TorvaldsJul 31, 2008
  13. Felipe ContrerasAug 23, 2008
  14. Blum, RobertJul 31, 2008
  15. Robin RosenbergAug 10, 2008
  16. David KastrupAug 1, 2008
  17. Monotone workflow compared to Git workflow ( was RE: Git vs Monotone)Craig L. Ching, Jul 31, 2008
  18. Linus TorvaldsJul 31, 2008
  19. Shawn O. PearceJul 31, 2008
  20. Craig L. ChingJul 31, 2008
  21. Björn SteinbrinkJul 31, 2008
  22. Avery PennarunJul 31, 2008
  23. Linus TorvaldsJul 31, 2008
  24. Martin LanghoffJul 31, 2008
  25. Linus TorvaldsJul 31, 2008
  26. Dmitry TorokhovAug 1, 2008
  27. Linus TorvaldsAug 1, 2008
  28. Linus TorvaldsAug 1, 2008
  29. Sean EstabrooksJul 31, 2008
  30. Theodore TsoJul 31, 2008
  31. Theodore TsoJul 31, 2008
  32. Sverre RabbelierAug 1, 2008
  33. Daniel BarkalowAug 1, 2008

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.