[squeak-dev] More distributed version control

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

[squeak-dev] More distributed version control

Andreas.Raab
Folks -

Just as a side note to anyone who is interested in distributed version
control systems, I thought it's interesting to see that they get more
and more widely adopted. This just popped up on Python-dev:

http://mail.python.org/pipermail/python-dev/2009-March/087931.html

I'm wondering if this has any impact on our thinking with respect to
Monticello, change sets etc?

Cheers,
   - Andreas

Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] More distributed version control

Göran Krampe
Hi!

Andreas Raab wrote:

> Folks -
>
> Just as a side note to anyone who is interested in distributed version
> control systems, I thought it's interesting to see that they get more
> and more widely adopted. This just popped up on Python-dev:
>
> http://mail.python.org/pipermail/python-dev/2009-March/087931.html
>
> I'm wondering if this has any impact on our thinking with respect to
> Monticello, change sets etc?

I am interested in these beasts, and Keith also has quite a bit of
experience. We use Hg in Gjallar - although very little. I have also
used bzr a bit, no git yet - but it is just a matter of time since
Github has really brought git "to the masses". Those are the three "top
contenders" although Darcs has a special place in my heart, not for it's
magical smarts (well, its cherry picking is way cool of course) but
mainly for its tremendous easy of use.

As you may know OpenSolaris, OpenJDK and Mozilla all use Hg (IIRC) and
Ubuntu pushes Bzr. These three are all very good, battle tested and
fast. Bzr and Hg being written in Python, and git in C.

The Quilt/patch queues in Hg etc is an example of inspiration for
Deltas, when Deltas are fully operational such queues can easily be made
using them.

IMHO there is a lot to be learned from these tools. Git and Darcs for
example represent two different "philosophies" - git following the
"don't be too smart, better to be slightly dumb but predictable"-idea
and Darcs following the "very, very smart doing magical stuff"-idea. :)

With Deltas I was also inspired by Linus/git - the idea to be able to do
relatively nice merging without using history like MC does - thus, "not
too smart, but predictable".

regards, Göran


Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] More distributed version control

Bert Freudenberg

On 31.03.2009, at 13:17, Göran Krampe wrote:

> Hi!
>
> Andreas Raab wrote:
>> Folks -
>> Just as a side note to anyone who is interested in distributed  
>> version control systems, I thought it's interesting to see that  
>> they get more and more widely adopted. This just popped up on  
>> Python-dev:
>> http://mail.python.org/pipermail/python-dev/2009-March/087931.html
>> I'm wondering if this has any impact on our thinking with respect  
>> to Monticello, change sets etc?
>
> I am interested in these beasts, and Keith also has quite a bit of  
> experience. We use Hg in Gjallar - although very little. I have also  
> used bzr a bit, no git yet - but it is just a matter of time since  
> Github has really brought git "to the masses". Those are the three  
> "top contenders" although Darcs has a special place in my heart, not  
> for it's magical smarts (well, its cherry picking is way cool of  
> course) but mainly for its tremendous easy of use.
>
> As you may know OpenSolaris, OpenJDK and Mozilla all use Hg (IIRC)  
> and Ubuntu pushes Bzr. These three are all very good, battle tested  
> and fast. Bzr and Hg being written in Python, and git in C.
>
> The Quilt/patch queues in Hg etc is an example of inspiration for  
> Deltas, when Deltas are fully operational such queues can easily be  
> made using them.
>
> IMHO there is a lot to be learned from these tools. Git and Darcs  
> for example represent two different "philosophies" - git following  
> the "don't be too smart, better to be slightly dumb but predictable"-
> idea and Darcs following the "very, very smart doing magical stuff"-
> idea. :)
>
> With Deltas I was also inspired by Linus/git - the idea to be able  
> to do relatively nice merging without using history like MC does -  
> thus, "not too smart, but predictable".


I've been working with git for a while now, first in Sugar and lately  
at VPRI too. I like it very much (compared to svn at least, no  
experience with hg or bzr), and the best thing is that it is really  
really simple inside. Highly recommended reading:

http://www.newartisans.com/2008/04/git-from-the-bottom-up.html

- Bert -



Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] More distributed version control

Frank Shearar
In reply to this post by Göran Krampe
"Göran Krampe" <[hidden email]> writes:

> Hi!
>
> Andreas Raab wrote:
> > Folks -
> >
> > Just as a side note to anyone who is interested in distributed version
> > control systems, I thought it's interesting to see that they get more
> > and more widely adopted. This just popped up on Python-dev:
> >
> > http://mail.python.org/pipermail/python-dev/2009-March/087931.html
> >
> > I'm wondering if this has any impact on our thinking with respect to
> > Monticello, change sets etc?
>
> I am interested in these beasts, and Keith also has quite a bit of
> experience. We use Hg in Gjallar - although very little. I have also
> used bzr a bit, no git yet - but it is just a matter of time since
> Github has really brought git "to the masses". Those are the three "top
> contenders" although Darcs has a special place in my heart, not for it's
> magical smarts (well, its cherry picking is way cool of course) but
> mainly for its tremendous easy of use.

What Göran said.

I've chosen to recommend Mercurial for my work purposes because darcs likes
ssh servers on those machines that will _serve_ repositories, and I've yet
to find an easy way to run said servers on Windows machines.

That cherry-picking business of darcs', though: man, that just rocks. When
you say "darcs record" it walks you through the hunks in a file, and you can
just say "yes, I'll record this hunk, no, not that hunk". (I'd dearly love
to see something like this in MC!)

Serving Mercurial repositories is more effort than darcs, but it's not
rocket science. I had an apache server anyway, so it was really just bunging
hgwebdir.cgi in the right place and writing the config file.

frank


Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] More distributed version control

Jecel Assumpcao Jr
In reply to this post by Bert Freudenberg
I like to keep track of version control systems (even developed one in C
on the QNX operating system back in 1988 which was inspired by the one
in Smalltalk described in chapter 15 of the "green book") and do find
the ones in Python interesting. I don't have any experience with Git,
but did watch Randal Schwartz's talk at Google about it:

> http://video.google.com/videoplay?docid=-3999952944619245780&ei=1S_SSbKPA5KurgKin4hQ&hl=en

-- Jecel


Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] More distributed version control

Philippe Marschall
In reply to this post by Andreas.Raab
2009/3/31 Andreas Raab <[hidden email]>:

> Folks -
>
> Just as a side note to anyone who is interested in distributed version
> control systems, I thought it's interesting to see that they get more and
> more widely adopted. This just popped up on Python-dev:
>
> http://mail.python.org/pipermail/python-dev/2009-March/087931.html
>
> I'm wondering if this has any impact on our thinking with respect to
> Monticello

MC is distributed.

Cheers
Philippe

Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] More distributed version control

Göran Krampe
In reply to this post by Frank Shearar
Hi!

Frank Shearar wrote:

> "Göran Krampe" <[hidden email]> writes:
>
>> Hi!
>>
>> Andreas Raab wrote:
>>> Folks -
>>>
>>> Just as a side note to anyone who is interested in distributed version
>>> control systems, I thought it's interesting to see that they get more
>>> and more widely adopted. This just popped up on Python-dev:
>>>
>>> http://mail.python.org/pipermail/python-dev/2009-March/087931.html
>>>
>>> I'm wondering if this has any impact on our thinking with respect to
>>> Monticello, change sets etc?
>> I am interested in these beasts, and Keith also has quite a bit of
>> experience. We use Hg in Gjallar - although very little. I have also
>> used bzr a bit, no git yet - but it is just a matter of time since
>> Github has really brought git "to the masses". Those are the three "top
>> contenders" although Darcs has a special place in my heart, not for it's
>> magical smarts (well, its cherry picking is way cool of course) but
>> mainly for its tremendous easy of use.
>
> What Göran said.
>
> I've chosen to recommend Mercurial for my work purposes because darcs likes
> ssh servers on those machines that will _serve_ repositories, and I've yet
> to find an easy way to run said servers on Windows machines.
>
> That cherry-picking business of darcs', though: man, that just rocks. When
> you say "darcs record" it walks you through the hunks in a file, and you can
> just say "yes, I'll record this hunk, no, not that hunk". (I'd dearly love
> to see something like this in MC!)

Note that Mercurial has this "chunk wise" recording now too, by default
I think. But that is *not* what I meant with cherry picking - but I
presume you know that, I meant the concept that you can pull patches
"out of order" from another repo. AFAIK Darcs is alone in this, although
the others have "similar inferior mechanisms" like transplant, rebase etc.

Btw, I also have recommended Mercurial mainly because its simplicity in
combination with good Windows support in the form of TortoiseHg etc,
AFAIK git is trailing on that department.

regards, Göran


Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] More distributed version control

Damien Cassou-3
2009/4/7 Göran Krampe <[hidden email]>:
> Note that Mercurial has this "chunk wise" recording now too, by default I
> think. But that is *not* what I meant with cherry picking - but I presume
> you know that, I meant the concept that you can pull patches "out of order"
> from another repo. AFAIK Darcs is alone in this, although the others have
> "similar inferior mechanisms" like transplant, rebase etc.

That's without counting with MC2 IIRC.

--
Damien Cassou
http://damiencassou.seasidehosting.st

Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] More distributed version control

Jason Johnson-5
In reply to this post by Frank Shearar
On Tue, Mar 31, 2009 at 4:44 PM, Frank Shearar
<[hidden email]> wrote:
>
> That cherry-picking business of darcs', though: man, that just rocks. When
> you say "darcs record" it walks you through the hunks in a file, and you can
> just say "yes, I'll record this hunk, no, not that hunk". (I'd dearly love
> to see something like this in MC!)

I thought MC2 could work from change sets?  If so, you have this now
and with an even handier interface.  Just arrange the change sets how
you want them with the change sorter, then commit it with MC2.  Am I
correct?

Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] More distributed version control

Frank Shearar
Jason Johnson wrote:

> On Tue, Mar 31, 2009 at 4:44 PM, Frank Shearar
> <[hidden email]> wrote:
>  
>> That cherry-picking business of darcs', though: man, that just rocks. When
>> you say "darcs record" it walks you through the hunks in a file, and you can
>> just say "yes, I'll record this hunk, no, not that hunk". (I'd dearly love
>> to see something like this in MC!)
>>    
>
> I thought MC2 could work from change sets?  If so, you have this now
> and with an even handier interface.  Just arrange the change sets how
> you want them with the change sorter, then commit it with MC2.  Am I
> correct?
>  
I've not used MC2, so if you can selectively commit parts of what you've
changed, I'd be very happy. Or, to make me just as happy, point out the
MC1 feature I'd missed.

frank

PS I'm _trying_ to get Thunderbird to send this using text/plain;
apologies if I fail.

Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] More distributed version control

Jason Johnson-5
Well the change set mechanism lets you create new change sets and move
individual changes between them however you like.  Then I would assume
MC2 has some way to select which change set to record.  I don't know
how it works in practice but it could be something even nicer than
what Darcs has from a UI point of view.

On Wed, Apr 8, 2009 at 12:19 PM, Frank Shearar
<[hidden email]> wrote:

> Jason Johnson wrote:
>>
>> On Tue, Mar 31, 2009 at 4:44 PM, Frank Shearar
>> <[hidden email]> wrote:
>>
>>>
>>> That cherry-picking business of darcs', though: man, that just rocks.
>>> When
>>> you say "darcs record" it walks you through the hunks in a file, and you
>>> can
>>> just say "yes, I'll record this hunk, no, not that hunk". (I'd dearly
>>> love
>>> to see something like this in MC!)
>>>
>>
>> I thought MC2 could work from change sets?  If so, you have this now
>> and with an even handier interface.  Just arrange the change sets how
>> you want them with the change sorter, then commit it with MC2.  Am I
>> correct?
>>
>
> I've not used MC2, so if you can selectively commit parts of what you've
> changed, I'd be very happy. Or, to make me just as happy, point out the MC1
> feature I'd missed.
>
> frank
>
> PS I'm _trying_ to get Thunderbird to send this using text/plain; apologies
> if I fail.
>
>

Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] More distributed version control

Colin Putney
In reply to this post by Jason Johnson-5
Jason Johnson wrote:
 > On Tue, Mar 31, 2009 at 4:44 PM, Frank Shearar
 > <[hidden email]>  wrote:
 >> That cherry-picking business of darcs', though: man, that just
rocks. When
 >> you say "darcs record" it walks you through the hunks in a file, and
you can
 >> just say "yes, I'll record this hunk, no, not that hunk". (I'd
dearly love
 >> to see something like this in MC!)
 >
 > I thought MC2 could work from change sets?  If so, you have this now
 > and with an even handier interface.  Just arrange the change sets how
 > you want them with the change sorter, then commit it with MC2.  Am I
 > correct?

Sort of. Yes, you could do that.

But if what you want is cherry picking, MC2 supports that with packages
as well. When doing a merge you always have the option to choose which
changes to apply. A normal, non-cherry-picking merge is just the
degenerate case where you choose to apply all the changes.

Colin


Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] More distributed version control

Colin Putney
In reply to this post by Frank Shearar
Frank Shearar wrote:

> I've not used MC2, so if you can selectively commit parts of what you've
> changed, I'd be very happy. Or, to make me just as happy, point out the
> MC1 feature I'd missed.

In MC2 you can only commit code that's active in the image. When
merging, you can selectively apply changes *to* the image, and then
commit that.

MC1 has a feature that's like cherry-picking, though slightly less
direct. Backporting allows you to choose a subset of changes to apply to
an ancestor of the current version. Then you can commit a new version
based on those changes, and merge it with the head. The end result is
similar to cherry-picking the changes.

Colin

Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] More distributed version control

Bert Freudenberg
In reply to this post by Göran Krampe
On 07.04.2009, at 10:02, Göran Krampe wrote:

> Hi!
>
> Frank Shearar wrote:
>> "Göran Krampe" <[hidden email]> writes:
>>> Hi!
>>>
>>> Andreas Raab wrote:
>>>> Folks -
>>>>
>>>> Just as a side note to anyone who is interested in distributed  
>>>> version
>>>> control systems, I thought it's interesting to see that they get  
>>>> more
>>>> and more widely adopted. This just popped up on Python-dev:
>>>>
>>>> http://mail.python.org/pipermail/python-dev/2009-March/087931.html
>>>>
>>>> I'm wondering if this has any impact on our thinking with respect  
>>>> to
>>>> Monticello, change sets etc?
>>> I am interested in these beasts, and Keith also has quite a bit of
>>> experience. We use Hg in Gjallar - although very little. I have also
>>> used bzr a bit, no git yet - but it is just a matter of time since
>>> Github has really brought git "to the masses". Those are the three  
>>> "top
>>> contenders" although Darcs has a special place in my heart, not  
>>> for it's
>>> magical smarts (well, its cherry picking is way cool of course) but
>>> mainly for its tremendous easy of use.
>> What Göran said.
>> I've chosen to recommend Mercurial for my work purposes because  
>> darcs likes
>> ssh servers on those machines that will _serve_ repositories, and  
>> I've yet
>> to find an easy way to run said servers on Windows machines.
>> That cherry-picking business of darcs', though: man, that just  
>> rocks. When
>> you say "darcs record" it walks you through the hunks in a file,  
>> and you can
>> just say "yes, I'll record this hunk, no, not that hunk". (I'd  
>> dearly love
>> to see something like this in MC!)
>
> Note that Mercurial has this "chunk wise" recording now too, by  
> default I think. But that is *not* what I meant with cherry picking  
> - but I presume you know that, I meant the concept that you can pull  
> patches "out of order" from another repo. AFAIK Darcs is alone in  
> this, although the others have "similar inferior mechanisms" like  
> transplant, rebase etc.
>
> Btw, I also have recommended Mercurial mainly because its simplicity  
> in combination with good Windows support in the form of TortoiseHg  
> etc, AFAIK git is trailing on that department.
>
> regards, Göran

Right. An analysis by Google engineers comes to the same conclusion:

http://code.google.com/p/support/wiki/DVCSAnalysis

They are going to support Mercurial on Google code (in addition to  
Subversion).

- Bert -