<div dir="ltr">Hi Avi,<br><br><div class="gmail_quote">On Tue, Sep 16, 2008 at 11:55 AM, Avi Bryant <span dir="ltr">&lt;<a href="mailto:avi@dabbledb.com" target="_blank">avi@dabbledb.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div><div></div><div>On Tue, Sep 16, 2008 at 9:57 AM, Eliot Miranda &lt;<a href="mailto:eliot.miranda@gmail.com" target="_blank">eliot.miranda@gmail.com</a>&gt; wrote:<br>
&gt; Yesterday I watched Linus Torvalds talk on G IT at Google. &nbsp;Once you get<br>
&gt; past his obnoxious public persona there is meat here, and its well worth the<br>
&gt; 1 hour 10 minutes holding one&#39;s nose. &nbsp;I think he&#39;s right on distributed<br>
&gt; version control and so would like to see Monticello GIT integration. &nbsp;One of<br>
&gt; GIT&#39;s features that I think will be most synergistic with Smalltalk is that<br>
&gt; it is content addressable. &nbsp;That is, GIT can track the history of a function<br>
&gt; even if it moves from one file to another.<br>
&gt; The system isn&#39;t a file tracker, it is a content tracker (in fact, a content<br>
&gt; addressible file system). &nbsp;This removes lots of issues in the mapping of<br>
&gt; Smalltalk methods to whatever the SCM system manages. &nbsp;In GIT there would be<br>
&gt; no problem mapping a class to a file. &nbsp;One could still track the history of<br>
&gt; a method within it with ease and GIT would still transmit only deltas, not<br>
&gt; the entire file, when a part of the method changed.<br>
<br>
</div></div>Yes, see my posts here:<br>
<a href="http://lists.squeakfoundation.org/pipermail/squeak-dev/2008-June/129602.html" target="_blank">http://lists.squeakfoundation.org/pipermail/squeak-dev/2008-June/129602.html</a><br>
<a href="http://lists.squeakfoundation.org/pipermail/squeak-dev/2008-June/129605.html" target="_blank">http://lists.squeakfoundation.org/pipermail/squeak-dev/2008-June/129605.html</a><br>
<br>
Git is modular enough that one could pretty easily, I think, replace<br>
its directory-of-files &lt;=&gt; content-tree mapping with a smalltalk-image<br>
&lt;=&gt; content-tree mapping and leave the majority of the system intact.<br>
<font color="#888888"><br>
Avi<br></font></blockquote></div><br><div>In&nbsp;<a href="http://lists.squeakfoundation.org/pipermail/squeak-dev/2008-June/129602.html" target="_blank">http://lists.squeakfoundation.org/pipermail/squeak-dev/2008-June/129602.html</a></div>

<div>you state</div><div><span style="color:rgb(136, 136, 136)"><span style="color:rgb(0, 0, 0);font-family:Arial;font-size:16px"><pre style="font-family:monospace;margin-left:3em;font-size:90%">I personally believe that we&#39;re better off with Smalltalk-specific
version control, but if someone *is* looking at integration with more
mainstream tools, I would strongly suggest they start with git rather
than SVN.

Avi</pre><span style="font-size:13px">and I&nbsp;want&nbsp;to&nbsp;emphatically&nbsp;agree&nbsp;with&nbsp;you&nbsp;that&nbsp;we&nbsp;want&nbsp;integrated&nbsp;Smalltalk-specific&nbsp;version&nbsp;control.&nbsp;Lets&nbsp;say&nbsp;integrated&nbsp;Smaltalk-centric&nbsp;rathe&nbsp;rthan&nbsp;Smalltalk-specific&nbsp;because&nbsp;there&nbsp;is&nbsp;benefit&nbsp;in&nbsp;other&nbsp;tools&nbsp;&amp;&nbsp;systems&nbsp;being&nbsp;able&nbsp;to&nbsp;access the source repository&#39;s contents without using Smalltalk (e.g. web serving, extracting documentation, bootstrapping and I&#39;m sure much more). &nbsp;But none of this prevents using Git as a back-end. &nbsp;Git seems to have several key advantages (that I didn&#39;t mention at first; they&#39;re in the talk) that we can use.</span></span></span></div>

<div><br></div><div>First, being distributed (based on divergent replicated repositories) there is no centralisation, no dependency on a server which, if it goes down, one can&#39;t work without. &nbsp;There is much higher performance because data is local (until one merges by pulling from other repositories). &nbsp;Second, there is protection against corruption (actually corruption detection) because contents are thoroughly check-summed. &nbsp;Most importantly content-addressability means mapping of Smalltalk to files is easier and not much of an issue.</div>
<div><br></div><div>But I&#39;m not sure I buy the mapping of an image to the repository. &nbsp;I would rather browse packages than images (e.g. a packages subdirectory containing a directory per package) and I still want the changes file for crash recovery. &nbsp;But thats a tension right there. &nbsp;Does one keep Smalltalk structures like the changes file and their support or go the whole hog and just use Git for all source? &nbsp;Personally I want to keep as many of the tools in Smalltalk as possible so I can fix and extend them as I&#39;m working. &nbsp;A large wadge of C should be kept in the back ground as much as possible. &nbsp;Its a file system after all.</div>
<div><br></div><div>Eliot</div>
</div>