Hi Eliot,

thanks for that mail.

2014-12-04 23:59 GMT+01:00 Eliot Miranda <eliot.miranda@gmail.com>:
Hi Thierry,

On Tue, Dec 2, 2014 at 10:25 PM, Thierry Goubier <thierry.goubier@gmail.com> wrote:


2014-12-03 4:16 GMT+01:00 Eliot Miranda <eliot.miranda@gmail.com>:

Yes, but *I* care about the Monticello metadata.� IMO its *better* than the git metadata.

Eliot, you'll have to do better than just IMO on that one.

Quite right.� One benefit is that Monticello metadata, at least per-method time stamps, are available for introspection inside the image.� Just today I was alerted of some bad code by a particular author and it was very convenient to read all the methods by that particular author, which helped me find another problem.� I also like the free frorm of the middle of method timestamps; I can and do annotate with labels for specific refactorings.

I believe Dale will tell you that git will give you the ability to select a particular author work on a per-line basis, per-file basis (method or class, then), etc...

Interestingly, the ability to comment at the file level is provided by github (well, in fact, it's a bit finer grained than that: it's commenting on a change in a file which fits your use case particularly well).

So this means we could probably do better there.
�

Another benefit is that Monticello is amenable for scripting much more easily than git.� I've been working on the SPur bootstrap fro a while now.� It is essentially complete.� What the bootstrap does in Monticello is construct patched versions of four packages, substituting specific methods with replacements.� Each patched package inherits both from its patched ancestor and the package that was patched (a ladder like structure).� This allows Spur to keep up-to-date automatically w.r.t. Squeak trunk.

But this would also work over a git-based Monticello. And, as you describe it, it probably even been seen as a simple merge (it's a kind of by-hand merge you're doing, basically).

This is one of the features I'm waiting Max for: the time he spent dealing with the low-level structure of the .git stuff(*) so that you can do exactly what you describe (or a Monticello merge) and commit that, and have it tracked as such.

(*) Honestly, I didn't want to do it myself :(
�

I'm also delighted that work like Chris Muller's version server is out there.� This is very nicely integrated to allow me to find out which package versions contain versions of a particular method or class definition.

I know that this version server exists, and I hoped that you would point it out, because I believe it is significant. Even if it is not usable in many professional settings, such as mine.

As you probably do as well, I know what features are needed from such a server to make it distributed '� la git'.



Some of us work with *both*, and have code for going back and forth, so the *better*; bah.

I also happens to know how long it takes to parse hundreds of monticello metadata files... and I wasn't impressed with the result.

Yes, but this can be reengineered.� Most things can be optimized.� This could be with a little effort.� What's needed is to generate and maintain momentum.� That's what worries me about git integration.� It's a slippery slope towards giving up Monticello and just using git.� And git itself will one day be viewed as old-hat.� Monticello should be easy to keep evolving.� It's in Smalltalk few chrissake.

Hey! You're talking to the guy who spent time making sure his git infrastructure would look and feel perfectly like a normal Monticello repository :)

But, having the on-demand version metadata, on-demand creation of a specific history version, the speed at which you sync a remote, the fact that you can commit locally and sync later, the fact that querying for method or class versions is a lot faster... those are things that one should consider when thinking of improving Monticello.
�


�
What's really lacking in Monticello is a) it's not high school so one can't preen in front of the world on github and b) it has no support for external files.� Well, a) will be solved by growing up and b) can be solved by building the solution.� I know what I'd rather do.


[and apologies for being deliberately incendiary but I *hate* the movement away from tools in Squeak/Pharo.� It is a movement towards stasis and death, and personally I'm enjoying life too much].

You then have noticed that those threads are about working on tools?

Yes, and that's why I'm writing to the thread.� I hope that work on integrating foreign file support, and integrating things like Chris Muller's version server continues in the Pharo community.� More than anything I hope that Monticello remains a bridge between the Squeak and Pharo communities.

I entirely agree with that :)

Thierry
�
�


Thierry
�





--
best,
Eliot