Smalltalk for small projects only?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
95 messages Options
12345
Reply | Threaded
Open this post in threaded view
|

Re: Smalltalk for small projects only?

Philippe Marschall-2-3
On 29.01.2012 19:39, Stéphane Ducasse wrote:
>
>>>> No, it does not.
>>>
>>> Please elaborate: I really can't see the difference between doing a merge (either an easy one or a more diffucult one over multiple files, spread over a couple of days, with intervening changes by others) using either Monticello or Git.
>>
>> The scalability limits of Monticello are well understood. PackageInfo doesn't scale, at all. You put too many classes in a package, and snapshotting gets really slow. Don't believe me? Make a change in Morphic which has only 200 classes and save it.
>
>
> You confuse artifacts and models.

No, because in the real world compared to the Smalltalk Theoretic
Perfect World it doesn't matter how things could scale, it matters how
things do scale. See [1]

  [1] http://c2.com/cgi/wiki?SufficientlySmartCompiler

Cheers
Philippe


Reply | Threaded
Open this post in threaded view
|

Re: [Smalltalk for small projects only?

Steve Wart-2
In reply to this post by Philippe Marschall-2-3

On Sun, Jan 29, 2012 at 11:39 AM, Philippe Marschall <[hidden email]> wrote:
On 29.01.2012 17:29, Steve Wart wrote:
Big legacy projects are still using Envy for VisualWorks less for the
reasons listed below, but mostly because it's extremely difficult to
migrate to Store without doing a "big bang" and most of these projects
don't have 200+ developers anymore anyhow (disclaimer: I'm only familiar
with 2 or 3 of these "success stories"). Many of the big Smalltalk
projects were mostly done using Envy, and it's a powerful tool, in spite
of its limitations. If there was a reliable way to move the latest
changes from a set of Envy configuration maps into Store, it would make
it much easier to get away from ancient, buggy and unsupported SCMs
(like Envy/GemKit).

So in something like ten (10) years they haven't managed to migrate await form said SCMs

OOCL and JP Morgan are still using Envy (although I've heard that JPM has purchased a license from IBM and maintains an in-house fork with the latest version of VW). I believe UBS has migrated to Store, but their team is very small and tight-knit. It's been very hard for big distributed shops to migrate SCM from Envy to Store. I think that Cincom has provided consulting support for that but I don't think they've provided any stats on the cost or effort to migrate a typical project.

VA shops continue to use Envy as a supported and effective SCM but I haven't used VA commercially, but I'm assuming it works for them.

It's not surprising that this old stuff doesn't get migrated given how IT projects are funded in general. When you've got hundreds of Java servers spewing errors all day, it's hard to get excited about some old Smalltalk stuff that just keeps the business chugging along.

Cheers,
Steve
Reply | Threaded
Open this post in threaded view
|

Re: Smalltalk for small projects only?

Philippe Marschall-2-3
In reply to this post by Stéphane Ducasse
On 29.01.2012 19:39, Stéphane Ducasse wrote:

>
>>>> No, it does not.
>>>
>>> Please elaborate: I really can't see the difference between doing a merge (either an easy one or a more diffucult one over multiple files, spread over a couple of days, with intervening changes by others) using either Monticello or Git.
>>
>> The scalability limits of Monticello are well understood. PackageInfo doesn't scale, at all. You put too many classes in a package, and snapshotting gets really slow. Don't believe me? Make a change in Morphic which has only 200 classes and save it.
>
>
> You confuse artifacts and models.
> Give me 1 engineer full time and we fix that.

Linus wrote git in two weeks. We would stop all work on the kernel until
we had an SCM that satisfied all this requirements including being fast
and scalable. Isn't Smalltalk supposed to make you super productive?

Cheers
Philippe


Reply | Threaded
Open this post in threaded view
|

Re: Smalltalk for small projects only?

Guido Stepken
In reply to this post by Philippe Marschall-2-3

I often discuss with Frank Lesser about Smalltalk compiler internals. He has written a Smalltalk VM (GVM), that is written in Assembler and jits Smalltalk directly dynamically into Intel machine code, that is *faster* than C in normal cases, expecially when fine tuned, able to run VS, VA, Squeak, Dolphin, Lesser Smalltalk in their own namespace, and MP!!! Sounds strange, because of different implementations (bytecode, callbacks...). GC runs on a 2.nd processor, what means, no more interruptions, Real Time Availability!!! If you want, you can control all traffic signs of NY within one Intel machine.

He proofes, that Smalltalk, expecially Pharo is far away from being at the end.... :-)

(And yes, i try to convince him to take part in the "language shootout" and make his GVM MIT license) :-)

regards, Guido Stepken

Am 29.01.2012 20:51 schrieb "Philippe Marschall" <[hidden email]>:
On 29.01.2012 19:39, Stéphane Ducasse wrote:

No, it does not.

Please elaborate: I really can't see the difference between doing a merge (either an easy one or a more diffucult one over multiple files, spread over a couple of days, with intervening changes by others) using either Monticello or Git.

The scalability limits of Monticello are well understood. PackageInfo doesn't scale, at all. You put too many classes in a package, and snapshotting gets really slow. Don't believe me? Make a change in Morphic which has only 200 classes and save it.


You confuse artifacts and models.

No, because in the real world compared to the Smalltalk Theoretic Perfect World it doesn't matter how things could scale, it matters how things do scale. See [1]

 [1] http://c2.com/cgi/wiki?SufficientlySmartCompiler

Cheers
Philippe


Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] Re: [Smalltalk for small projects only?

Dale Henrichs
In reply to this post by Steve Wart-2
Steve,

Ah yes, the old "it's too hard to do the right thing, so let's do what we want to do" argument. Haha ... no offense taken. As you mention it is easy to fall into that trap.

While it's true that I put a lot of effort into Metacello, it isn't true that "I deserve all the credit" ... nothing happens in a vacuum, significant contributions were made by Stef, Doru, Mariano, Alexandre and others (I guess this is the season for the Academy Awards:) ... thanks, and enough of that:)

Metacello was created to address a specific set of problems that I was having while working on GLASS and those problems were being experienced by a wider group of folks than just myself and the users of GLASS, which lead to it's broad acceptance ...

With that said, I always maintain that there are "more than one way to skin a cat." And Metacello just happens to be one of the ways to skin the cat.

I've been living in the Smalltalk community for most of the last 25+ years so just I don't have the familiarity with the other configuration management systems to do a good job of integrating them into the Smalltalk development environment ...

My take is that it will be "too hard" (right back at ya:), especially for me.

To the extent that I have the time I am willing to offer you (or anyone else working in the area on alternate approaches) constructive criticism as well as advice about what I consider the "barriers to acceptance" are going to be ...

Dale

----- Original Message -----
| From: "Steve Wart" <[hidden email]>
| To: "The general-purpose Squeak developers list" <[hidden email]>
| Cc: "VWNC" <[hidden email]>, "Janko Mivšek" <[hidden email]>, [hidden email]
| Sent: Sunday, January 29, 2012 11:47:34 AM
| Subject: Re: [squeak-dev] Re: [Smalltalk for small projects only?
|
|
| Hi Dale
|
| First let me apologize for using such a horrible IT euphemism. I have
| been hanging around software politicians for far too long. I think
| you deserve all the credit for coming up with an elegant and
| effective configuration management system that has brought many
| parts of the Smalltalk community together to build common, useful
| and practical tools.
|
| Regarding your race suggestion, I think you are right that having
| more choices will be good for the community. I can't claim that I
| don't have resources available - I can come up with a few hours a
| week to work on this. I'll start with the links Frank posted, but I
| think the two approaches in the end may share some common features.
|
| I've been thinking about this idea for a long time but without
| feedback I haven't had the courage to start. Maybe I can finally
| help.
|
| Cheers,
| Steve
|
|
| On Sun, Jan 29, 2012 at 11:13 AM, Dale Henrichs < [hidden email]
| > wrote:
|
|
| Steve,
|
| I have two comments:
|
| 1. "inventing the future" doesn't happen by considering
| how "ambitious" it may seem. In the end it is probably
| easier than you think and harder than I think. If it was
| real easy, I'd have been done by now:)
|
| 2. I propose a race:
|
| You start working on your git backend for Smalltalk and
| I'll continue working on Metacello, first one to "git work
| flow" wins ... But then the real winners will be the Smalltalk
| Community...
|
| I have said this before: "I can hardly wait until someone
| invents the replacement for Metacello---it will give me
| more time for other projects:)"
|
|
| Dale
|
| ----- Original Message -----
|
|
| | From: "Steve Wart" < [hidden email] >
| |
| | The idea of building the git workflow on top of metacello strikes
| | me
| | as being somewhat ambitious.
|
|
|
|
|

Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] Smalltalk for small projects only?

Chris Muller-3
In reply to this post by Sean P. DeNigris
But the point I think Lawson is making is that there has not yet been
sufficient effort by anyone other than Craig to determine, for sure,
what the exact feasibility of the Spoon system is.

A MNU is too-trivial an issue to give up on the Spoon dream, given the
potential leverage it could offer on the problem of building up from a
micro-image..

On Sat, Jan 28, 2012 at 10:28 PM, Sean P. DeNigris
<[hidden email]> wrote:

>
> Lawson English-2 wrote
>>
>> One thing that I have heard is that *no one* has really stepped up and
>> given feedback to Craig.
>
> This is not totally accurate. After sitting with Craig at the last ESUG, I
> immediately ran into problems trying to simulate the VM and was unable to
> get answers on the mailing list
> (http://forum.world.st/Simulating-the-VM-td3774139.html).
>
> --
> View this message in context: http://forum.world.st/Smalltalk-for-small-projects-only-tp4336237p4337616.html
> Sent from the Pharo Smalltalk mailing list archive at Nabble.com.
>

Reply | Threaded
Open this post in threaded view
|

Re: Smalltalk for small projects only?

Chris Muller-3
In reply to this post by Philippe Marschall-2-3
But the goal of making the image smaller is congruent with the goal of
making Morphic smaller, which would be congruent with the desire for
Monticello to be "scalable".  So the solution should be smaller
packages, not more and bigger tools.

Besides, the measure of scale you've chosen is an build /
initialization step, which can much more afford to be "slow",
especially if the dream is to just have it sit and build 24 hours a
day.

A better non-scaling measure to recognize in Monticello, IMO, is using
FileBased repositories, which require enumeration of an ever-growing
number of versions for many of its operations.

Using a database-backed MC repository solves that.



On Sun, Jan 29, 2012 at 11:48 AM, Philippe Marschall <[hidden email]> wrote:

> On 29.01.2012 17:02, Sven Van Caekenberghe wrote:
>>
>>
>> On 29 Jan 2012, at 15:30, Philippe Marschall wrote:
>>
>>>> As for scale.. monticello scales well.
>>>
>>>
>>> No, it does not.
>>
>>
>> Please elaborate: I really can't see the difference between doing a merge
>> (either an easy one or a more diffucult one over multiple files, spread over
>> a couple of days, with intervening changes by others) using either
>> Monticello or Git.
>
>
> The scalability limits of Monticello are well understood. PackageInfo
> doesn't scale, at all. You put too many classes in a package, and
> snapshotting gets really slow. Don't believe me? Make a change in Morphic
> which has only 200 classes and save it.
>
> And it's not like loading is any faster. Seaside takes 10 minutes to build
> from locally cached [1] packages, only 12 seconds go to running tests [2].
> This makes C++ compilation times seem fast by comparison.
>
>  [1] http://jenkins.lukas-renggli.ch/job/Seaside%203.1/buildTimeTrend
>  [2]
> http://jenkins.lukas-renggli.ch/job/Seaside%203.1/lastCompletedBuild/testReport/
>
> Cheers
> Philippe
>
>

Reply | Threaded
Open this post in threaded view
|

Re: Smalltalk for small projects only?

Philippe Marschall-2-3
On 29.01.2012 22:31, Chris Muller wrote:
> But the goal of making the image smaller is congruent with the goal of
> making Morphic smaller, which would be congruent with the desire for
> Monticello to be "scalable".

What are you talking about? I chose Morphic because it was the first
package I found that had more than a dozen classes.

> So the solution should be smaller
> packages, not more and bigger tools.

You should chose the package size on what makes sense from a software
design point of view, not what the scalability limit of your tools is.

> Besides, the measure of scale you've chosen is an build /
> initialization step, which can much more afford to be "slow",
> especially if the dream is to just have it sit and build 24 hours a
> day.
>
> A better non-scaling measure to recognize in Monticello, IMO, is using
> FileBased repositories, which require enumeration of an ever-growing
> number of versions for many of its operations.
>
> Using a database-backed MC repository solves that.

What are we discussing here? What is or the STPF?

Cheers
Philippe


Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] Re: [Smalltalk for small projects only?

otto
In reply to this post by Dale Henrichs
Hi,

We've built a little package that allows us to save all our source in
git. We've been developing with this for 3 months now, and it's pretty
stable. I put a project on github,
https://github.com/finworks/smallsource that contains some more info
on it. Yes, there's more work to do, but there's hope. The repo
contains some examples that I just saved from the image.

In short, we save and load all the monticello packages on our project
as smalltalk source files. We use git to merge and not monticello. We
use metacello, but watered down to essentially just dependencies.

I just want to say thanks to all you people who put in such great
effort into Smalltalk. We are using Smalltalk to create a business and
are slowly getting somewhere.

We've been using git for about 3 years now. This came from a need to
manage files, such as scripts, resources (images and stuff), documents
and recorded selenium (ide) tests with smalltalk code. So, we just
whacked all of this, including our monticello packages into the git
repo.

As you can imagine, storing binary files in a git repo, especially
fairly large packages and lots of integrations / merges / versions,
grew the git repo quite a bit. We also needed to clone the git repo
all over. So we decided to give it a shot and write to files.

It took about 2 weeks to get going and another to sort out some pain,
but the package in the smallsource repo have not changed for 3 months.

We are 5-6 developers on the project, committing numerous times a day.
We currently have about 1100 classes (find repo -type d | wc -l  gives
us 2200) and 23500 methods (find . -type f | grep -v "mcz$" | wc -l
gives us 23545) managed in this way.

I'm keen to talk about how we can really "do the right thing" and
solve this source code management monster. I know this approach needs
work (I'll list some issues on the project, that I think needs
attention) and I also realise that there could be better approaches.

Here's another idea: we can map class definitions and method
definitions directly to git objects. Git has a great object model
which will allow us to directly track the complete history of a method
or class definition, with commit details and what not. In a sense, I
feel that a tight integration between a smalltalk environment and git
will be a fantastic solution - something like envy, but on git, with
all the fanciness that comes with git!

The only problem with this is a very tight coupling with git. Do we want that?

Thanks again
Otto

Reply | Threaded
Open this post in threaded view
|

Re: Smalltalk for small projects only?

Philippe Marschall-2-3
In reply to this post by Guido Stepken
On 29.01.2012 21:12, Guido Stepken wrote:

> I often discuss with Frank Lesser about Smalltalk compiler internals. He
> has written a Smalltalk VM (GVM), that is written in Assembler and jits
> Smalltalk directly dynamically into Intel machine code, that is *faster*
> than C in normal cases, expecially when fine tuned, able to run VS, VA,
> Squeak, Dolphin, Lesser Smalltalk in their own namespace, and MP!!!
> Sounds strange, because of different implementations (bytecode,
> callbacks...). GC runs on a 2.nd processor, what means, no more
> interruptions, Real Time Availability!!! If you want, you can control
> all traffic signs of NY within one Intel machine.
>
> He proofes, that Smalltalk, expecially Pharo is far away from being at
> the end.... :-)
>
> (And yes, i try to convince him to take part in the "language shootout"
> and make his GVM MIT license) :-)

You didn't get my point. My point is tools suck until you fix them. Just
saying you could fix them doesn't fix them.

To rehash the argument:
Me: Monticello doesn't scale
Stef: we could make Monticello scale

Now does this make Monticello scale? In the STPW it does. It the real
world it doesn't until somebody goes there and fixes Monticello.

So what are we discussing the real world or the STPW?

Cheers
Philippe


Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] Smalltalk for small projects only?

Sean P. DeNigris
Administrator
In reply to this post by Chris Muller-3
Chris Muller-3 wrote
A MNU is too-trivial an issue to give up on the Spoon dream
Obviously. I was speaking to the over simplification that no-one-being-willing-to-give-feedback was the key impediment to a bright future, not to Spoon's value.
Cheers,
Sean
Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] Re: [Smalltalk for small projects only?

Sven Van Caekenberghe
In reply to this post by otto
Otto,

On 29 Jan 2012, at 23:03, Otto Behrens wrote:

> Hi,
>
> We've built a little package that allows us to save all our source in
> git. We've been developing with this for 3 months now, and it's pretty
> stable. I put a project on github,
> https://github.com/finworks/smallsource that contains some more info
> on it. Yes, there's more work to do, but there's hope. The repo
> contains some examples that I just saved from the image.
>
> In short, we save and load all the monticello packages on our project
> as smalltalk source files. We use git to merge and not monticello. We
> use metacello, but watered down to essentially just dependencies.
>
> I just want to say thanks to all you people who put in such great
> effort into Smalltalk. We are using Smalltalk to create a business and
> are slowly getting somewhere.
>
> We've been using git for about 3 years now. This came from a need to
> manage files, such as scripts, resources (images and stuff), documents
> and recorded selenium (ide) tests with smalltalk code. So, we just
> whacked all of this, including our monticello packages into the git
> repo.
>
> As you can imagine, storing binary files in a git repo, especially
> fairly large packages and lots of integrations / merges / versions,
> grew the git repo quite a bit. We also needed to clone the git repo
> all over. So we decided to give it a shot and write to files.
>
> It took about 2 weeks to get going and another to sort out some pain,
> but the package in the smallsource repo have not changed for 3 months.
>
> We are 5-6 developers on the project, committing numerous times a day.
> We currently have about 1100 classes (find repo -type d | wc -l  gives
> us 2200) and 23500 methods (find . -type f | grep -v "mcz$" | wc -l
> gives us 23545) managed in this way.
>
> I'm keen to talk about how we can really "do the right thing" and
> solve this source code management monster. I know this approach needs
> work (I'll list some issues on the project, that I think needs
> attention) and I also realise that there could be better approaches.
>
> Here's another idea: we can map class definitions and method
> definitions directly to git objects. Git has a great object model
> which will allow us to directly track the complete history of a method
> or class definition, with commit details and what not. In a sense, I
> feel that a tight integration between a smalltalk environment and git
> will be a fantastic solution - something like envy, but on git, with
> all the fanciness that comes with git!
>
> The only problem with this is a very tight coupling with git. Do we want that?
>
> Thanks again
> Otto

This sounds very interesting/promising !

Do you have a writeup/article describing your approach ?

First question: does your system deal with packages as we know them, with extensions ?

Sven



Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] Re: [Smalltalk for small projects only?

otto
> Do you have a writeup/article describing your approach ?

Some stuff in the README on the
https://github.com/finworks/smallsource. Let me know what you need.
I'm writing more as we speak... :-)

> First question: does your system deal with packages as we know them, with extensions ?

Yes, with extensions. Have not tried traits though.

Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] Re: [Smalltalk for small projects only?

Sven Van Caekenberghe
Otto,

On 29 Jan 2012, at 23:12, Otto Behrens wrote:

> Some stuff in the README on the
> https://github.com/finworks/smallsource. Let me know what you need.
> I'm writing more as we speak... :-)

How can one try this out ?
What to load/install ?

Thx,

Sven

Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] Re: [Smalltalk for small projects only?

otto
> How can one try this out ?
> What to load/install ?

I added something in the README:

To use it, take a Pharo-1.3 image and just load MonticelloFileTree.
Open a monticello browser and select a package. +Repository has a new
menu item called "file tree"; select any directory on your PC. Save
the package there. You should see a directory <package name>.tree in
the directory after you saved. The GemStone-Extensions package
contains the gemstone hacks to make it work in GLASS.

HTH

Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] Re: [Smalltalk for small projects only?

otto
Oh, and make some changes in a file (method). Change the timestamp in
the file to be more recent. Load the package. The change should be in
your image.

On Mon, Jan 30, 2012 at 12:46 AM, Otto Behrens <[hidden email]> wrote:

>> How can one try this out ?
>> What to load/install ?
>
> I added something in the README:
>
> To use it, take a Pharo-1.3 image and just load MonticelloFileTree.
> Open a monticello browser and select a package. +Repository has a new
> menu item called "file tree"; select any directory on your PC. Save
> the package there. You should see a directory <package name>.tree in
> the directory after you saved. The GemStone-Extensions package
> contains the gemstone hacks to make it work in GLASS.
>
> HTH

Reply | Threaded
Open this post in threaded view
|

Re: Smalltalk for small projects only?

Göran Krampe
In reply to this post by Sven Van Caekenberghe
On 01/29/2012 05:02 PM, Sven Van Caekenberghe wrote:
> PS: one of the things that we should take from git, as many others have said on this list, is selective commits.

If I ever get around to picking up Deltas again it would make a really
good tool to enable this on top of current MC (or any other tool of course).

I do have an itch with Deltas but might end up pushing it into Amber first.

regards, Göran

Reply | Threaded
Open this post in threaded view
|

Re: [Smalltalk for small projects only?

Göran Krampe
In reply to this post by Frank Shearar-3
On 01/29/2012 07:02 PM, Frank Shearar wrote:
> - GSOC 2010 had a proposal
> l(http://gsoc2010.esug.org/projects/git-mercurial) - Goran, did this
> get off the ground?

AFAIK, not really.

regards, Göran

Reply | Threaded
Open this post in threaded view
|

Future of SCM (was Re: [squeak-dev] Re: [Smalltalk for small projects only?)

Göran Krampe
In reply to this post by otto
Hi all!

I held a presentation regarding SCM in general a few weeks back as part
of a course and in that presentation I try to end it with a view ahead
about what is the Next Step for SCM. So let me go "dreaming" here for a
minute. :)

As many in this thread has correctly identified the main "issue" with
SCM is that when several developers work on the *same* codebase in
parallell it gets hairy, no matter which tool you use. Most open source
projects actually do *not* do that, we normally work on smallish
*different* packages or just a few people on the same package - so we
normally don't get to feel the real *hurt* that a large commercial
project often does. At least that is my perception.

Yes, MC and git are great. Darcs is in some respects even greater in
this particular area (merging, cherry picking etc). But these tools do
not capture what I like to call "developer intent" very good.

git and Darcs etc just manage files, they don't even know what language
we are using. Darcs has something in the "right direction" and that is
the token replace change, which is a small step towards "smarter change
types".

MC knows it is Smalltalk source it is dealing with, but doesn't really
use that knowledge as much as it could.

Deltas that I started working with (and came quite far with the help of
Matthew Fulmer and a few others) goes a few steps further. A Delta
distinguishes developer intent in greater detail than MC and could
potentially be "smarter" because of that.

And this is where the general future of SCM lies I think, in two areas:

- Making SCM tools aware of developer intent. If I use RB to do a
refactoring for example, why not *record that* and not just record the
effects of the recactoring on the source code? If I rename a method in a
class, and fix all senders of it, why not record it as a *method
rename*? That way, if it is merged into another environment it can be
handled much smarter and we could for example fix even more senders.

- Real time collaboration. If we can sit in a shared (in some controlled
fashion) development environment in some kind of real time model, then
lots of merging and conflicts would just say PUFF and go up in smoke. We
are beginning to see this now with the new IDEs running "on the web"
because suddenly it gets very natural to experiment in that direction.

regards, Göran

Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] Re: [Smalltalk for small projects only?

Stéphane Ducasse
In reply to this post by otto
Hi otto

how to you deal with conflict due to the for example move of methods due to file out?

Stef



> Hi,
>
> We've built a little package that allows us to save all our source in
> git. We've been developing with this for 3 months now, and it's pretty
> stable. I put a project on github,
> https://github.com/finworks/smallsource that contains some more info
> on it. Yes, there's more work to do, but there's hope. The repo
> contains some examples that I just saved from the image.
>
> In short, we save and load all the monticello packages on our project
> as smalltalk source files. We use git to merge and not monticello. We
> use metacello, but watered down to essentially just dependencies.
>
> I just want to say thanks to all you people who put in such great
> effort into Smalltalk. We are using Smalltalk to create a business and
> are slowly getting somewhere.
>
> We've been using git for about 3 years now. This came from a need to
> manage files, such as scripts, resources (images and stuff), documents
> and recorded selenium (ide) tests with smalltalk code. So, we just
> whacked all of this, including our monticello packages into the git
> repo.
>
> As you can imagine, storing binary files in a git repo, especially
> fairly large packages and lots of integrations / merges / versions,
> grew the git repo quite a bit. We also needed to clone the git repo
> all over. So we decided to give it a shot and write to files.
>
> It took about 2 weeks to get going and another to sort out some pain,
> but the package in the smallsource repo have not changed for 3 months.
>
> We are 5-6 developers on the project, committing numerous times a day.
> We currently have about 1100 classes (find repo -type d | wc -l  gives
> us 2200) and 23500 methods (find . -type f | grep -v "mcz$" | wc -l
> gives us 23545) managed in this way.
>
> I'm keen to talk about how we can really "do the right thing" and
> solve this source code management monster. I know this approach needs
> work (I'll list some issues on the project, that I think needs
> attention) and I also realise that there could be better approaches.
>
> Here's another idea: we can map class definitions and method
> definitions directly to git objects. Git has a great object model
> which will allow us to directly track the complete history of a method
> or class definition, with commit details and what not. In a sense, I
> feel that a tight integration between a smalltalk environment and git
> will be a fantastic solution - something like envy, but on git, with
> all the fanciness that comes with git!
>
> The only problem with this is a very tight coupling with git. Do we want that?
>
> Thanks again
> Otto
>


12345