<div dir="ltr">Indeed, Git has its scalability problems as well. That's why Microsoft is developing "VFS for Git"  <a href="https://vfsforgit.org/" target="_blank">https://vfsforgit.org/</a> to address these issues, so they can use it for the massive Windows code base without being blocked by Git. Compared to that code base and its number of concurrent developers, Squeak and its ancestry are tiny, there should be no problems at all. And yet we argue regularly about saving space and time by folding a few Monticello 

versions together.

<div><div><div><br></div><div>While the "laws of software physics" do apply to Git as well, Git still performs much better under their constraints than Monticello. I think people like to call that "more efficient". Monticello's abstract design may be nice, but its current approach to storage (which should be an implementation detail) is not. To make things worse, independent from Monticello, "how to store Smalltalk code in a file system" is another efficiency discussion as we can see in the opinions about the Tonel format.</div><div><br></div><div>Git never stores two equal objects twice (in a single repository, of course). Monticello does so happily with 90%+ of the snapshot and ancestry every time you press Save.</div></div></div><div><br></div><div>This technical shortcoming should be addressed. But it should not drive us to abandon sane diffs, which means separate commits for separate objectives.</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Am Do., 21. Nov. 2019 um 21:48 Uhr schrieb Chris Muller <<a href="mailto:ma.chris.m@gmail.com" target="_blank">ma.chris.m@gmail.com</a>>:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">So it turns out that good versioning tools do not need to be slow<br>
and resource hungry. I guess it also shows that a small amount of<br>
brilliant design goes a long way when it comes to performance.<br></blockquote><div><br></div><div>Nonsense.  You haven't magically escaped the laws of software physics.  You were using github, which is run in a datacenter, right?  Dump enough into your git repository, and your use-cases will eventually start to slow down in performance.</div><div><br></div><div><div>I am curious how you're "using git" though because when I accessed a git project through Squeak, it was NOT fast, and it created a gigantic directory tree in my squeak directory which also slowed down my daily backup job tremendously.  The directory names were hugely long and it was problematic.</div><div><br></div><div>This is why I won't start actively using git until I can make a transparent MCGitRepository via their v4 API (GraphQL).  I haven't looked at the Schema yet, but I wouldn't be surprised if it, alone, is larger than the entire _implementation_ code of Monticello.  I'd say Avi's was a brilliant design, for sure.</div></div><div><br></div><div> - Chris</div><div><br></div><div><br></div></div></div>
<br>
</blockquote></div>