Feature #2033 [ruby-core:25285]

Move Core Development to Git

Added by Run Paint Run Run 330 days ago. Updated 329 days ago.

Status :Open Start :09/03/2009
Priority :Normal Due date :
Assigned to :Yuki Sonoda % Done :

0%

Category :-
Target version :-

Description

Following from [ruby-core:21039], I formally propose that core development switches to Git. The obvious benefits include:

* Opens Ruby development to a wider range of contributors. Ruby- and non-Ruby-based projects alike have shown a dramatic upswing in contributions after moving to Git.
* Allows tickets to be handled by de facto topic branch maintainers. A contributor interested in improving documentation, for example, could review the documentation tickets, apply the relevant patches to his 'doc' branch, then propose it be merged periodically. The core team could, and should, still monitor this branch's progress, and intercede where necessary. Ultimately, development would suffer less from the current bottleneck effect, allowing contributers to play a larger role.  
* Complicated feature proposals would take the form of branches. This solves the current problem of patches rotting in Redmine because `rebase` and Git's superior merging capability allow the patch to be kept in step with the trunk. Further, this allows parties interested in the feature to collaborate on the branch; only submitting a pull request when they deem it mature.
* Experimentation is encouraged because now anybody can branch, and contribute back that branch, with impunity.
* Working with the trunk becomes more pleasurable due to Git's advanced toolset and significant performance benefits.

Etcetera. I am particularly excited about the options that Git would give us to decentralize development: spreading the workload over a wider number of contributors, while still retaining the core team's vital role as gatekeepers. Redmine tickets alone suggest that the current path is not maintainable; the sooner we change our course, the easier the process will be.

In the previous ruby-core thread on this matter matz's sole objection was that certain scripts exist for the SVN workflow that would need porting to Git. If this is still the case, perhaps the scripts could be posted publicly so interested parties could port them? What objections remain?

History

09/03/2009 03:27 AM - Hongli Lai

I support this idea.

09/03/2009 03:37 AM - Jeremy Kemper

Strongly agreed. Switching to git was a turning point for Rails development also.

There's a full svn mirror at http://github.com/shyouhei/ruby to start using today.

09/03/2009 03:57 AM - Yehuda Katz

I agree with this, and I think ruby-core wants to do this as well. I'll personally step up and agree to spend time moving the tools over. I think we could probably get a commitment from other folks as well (including some folks at GitHub, I'd guess).

So, where are they :)

09/03/2009 04:01 AM - Nicolás Sanguinetti

Yes. This would be great for ruby IMO.

09/03/2009 04:03 AM - Yui NARUSE

Some commiter of Ruby live on Windows.
And windows port of git, msysgit, is still preview (cygwin port is not acceptable).
So we can't move to git.

those benefits seem to be resolved by shyouhei's ruby in github.
If you fork his and publish your patch, we can take it.
(Of course, they must be well commented)

09/03/2009 04:03 AM - Federico Builes

+1 to this.

As I said in the original thread, I'll be glad to help porting any tools to the new system.

09/03/2009 04:04 AM - Luis Lavena

On Wed, Sep 2, 2009 at 8:57 PM, Yehuda Katz<redmine@ruby-lang.org> wrote:
> Issue #2033 has been updated by Yehuda Katz.
>
>
> I agree with this, and I think ruby-core wants to do this as well. I'll personally step up and agree to spend time moving the tools over. I think we could probably get a commitment from other folks as well (including some folks at GitHub, I'd guess).
>
> So, where are they :)

According to 'tweets' there has been the rumor that Ruby-core do not
migrate to Git due lack of Windows support.

I must say that is completely inaccurate.

Git support has been excellent using msysGit releases, even with
integrated git-svn support.

Projects like rake-compiler and RubyInstaller uses Git and GitHub as
SCM and contribution platform, something we couldn't achieve using
Subversion.

In my humble opinion, the move to Git will highly increase the options
for people wanting to contribute to Ruby.

Regards,
-- 
Luis Lavena
AREA 17
-
Perfection in design is achieved not when there is nothing more to add,
but rather when there is nothing more to take away.
Antoine de Saint-Exupéry

09/03/2009 04:27 AM - Enrico Bianco

I strongly agree with this proposal.

Using Git with Windows is much easier than it used to be. Perhaps moving Ruby development from SVN to Git would even serve as a strong motivator to improve the Windows port of Git!

09/03/2009 05:00 AM - Ilya Grigorik

+1

I would also strongly encourage github as an option, instead of running own servers. To me, the main benefit of the switch is not even necessarily in Git vs SVN as much as in the transparency that it would enable. Let's face it, most of us are on GitHub already, following a ton of projects. Having Ruby there would just make sense.

09/03/2009 05:07 AM - Luis Lavena

On Wed, Sep 2, 2009 at 10:00 PM, Ilya Grigorik<redmine@ruby-lang.org> wrote:
>
> I would also strongly encourage github as an option, instead of running own servers.

With Git it doesn't matter, is just another remote to pull/merge or
cherry-pick from.

> To me, the main benefit of the switch is not even necessarily in Git vs SVN as much as in the transparency that it would enable. Let's face it, most of us are on GitHub already, following a ton of projects. Having Ruby there would just make sense.

I follow Ruby SVN using RSS and I must say that doing that way really
confuses me.

The RSS links points to cvscgi views, while Redmine points to
integrated commits.

I think depends on the level of integration that can be achieved with
Redmine which is going to decide the "origin" repository.

-- 
Luis Lavena
AREA 17
-
Perfection in design is achieved not when there is nothing more to add,
but rather when there is nothing more to take away.
Antoine de Saint-Exupéry

09/03/2009 05:38 AM - Jon Forums

> Some commiter of Ruby live on Windows.
> And windows port of git, msysgit, is still preview (cygwin port is not acceptable).
> So we can't move to git.

As a user of msysgit on Win2K, WinXP, and Vista machines I've found the current msysgit preview to be very usable.  While I personally prefer Mercurial, I'm quickly becoming a big fan of Git and Github.

The only difficulty I've had so far is the age old issue of line endings, which is easily solved by setting "core.autocrlf = false" globally.  I use an editor (gvim) that understands both styles of line endings and there are many other good editors (free and non-free) on Windows that do the same.

Have any of the Ruby-committers-living-on-Windows actually had any specific problems with msysgit?

Jon

09/03/2009 08:31 AM - Eric Hodel

On Sep 2, 2009, at 11:19, Run Paint Run Run wrote:

> Feature #2033: Move Core Development to Git
> http://redmine.ruby-lang.org/issues/show/2033
>
> Author: Run Paint Run Run
> Status: Open, Priority: Normal
> Assigned to: Yukihiro Matsumoto
>
> Following from [ruby-core:21039], I formally propose that core  
> development switches to Git. The obvious benefits include:
>
> * Opens Ruby development to a wider range of contributors. Ruby- and  
> non-Ruby-based projects alike have shown a dramatic upswing in  
> contributions after moving to Git.

This is scientifically proven?

> * Allows tickets to be handled by de facto topic branch maintainers.  
> A contributor interested in improving documentation, for example,  
> could review the documentation tickets, apply the relevant patches  
> to his 'doc' branch, then propose it be merged periodically. The  
> core team could, and should, still monitor this branch's progress,  
> and intercede where necessary. Ultimately, development would suffer  
> less from the current bottleneck effect, allowing contributers to  
> play a larger role.

This sounds like more work than what happens now.  How is more work  
supposed to make ruby development faster?

> * Complicated feature proposals would take the form of branches.  
> This solves the current problem of patches rotting in Redmine  
> because `rebase` and Git's superior merging capability allow the  
> patch to be kept in step with the trunk. Further, this allows  
> parties interested in the feature to collaborate on the branch; only  
> submitting a pull request when they deem it mature.

Can't this be done now with git-svn?

> * Experimentation is encouraged because now anybody can branch, and  
> contribute back that branch, with impunity.

Ditto.

> * Working with the trunk becomes more pleasurable due to Git's  
> advanced toolset and significant performance benefits.


I've found git less pleasurable and it's "advanced" toolset cumbersome  
and unfriendly.  It's largely been a performance detriment to me.

09/03/2009 09:23 AM - Ilya Grigorik

+1

I would also strongly encourage github as an option, instead of running own servers. To me, the main benefit of the switch is not even necessarily in Git vs SVN as much as in the transparency that it would enable. Let's face it, most of us are on GitHub already, following a ton of projects. Having Ruby there would just make sense.

09/03/2009 09:38 AM - Run Paint Run Run

>> * Opens Ruby development to a wider range of contributors. Ruby- and
>> non-Ruby-based projects alike have shown a dramatic upswing in contributions
>> after moving to Git.
>
> This is scientifically proven?

Heh, I confess not to have orchestrated a wide-scale statistical study
on the matter, no. The anecdotal evidence, however, is very much in
keeping with my claim. The experience of Rails
(http://www.igvita.com/2009/01/27/ruby-swarms-visualizing-rails-git/)
and the Linux kernel
(http://www.linuxfoundation.org/publications/whowriteslinux.pdf)
mirror those of other major projects which made the transition. If you
require numerical arguments to be convinced, I will endeavor to
assemble the requisite data.

>> * Allows tickets to be handled by de facto topic branch maintainers. A
>> contributor interested in improving documentation, for example, could review
>> the documentation tickets, apply the relevant patches to his 'doc' branch,
>> then propose it be merged periodically. The core team could, and should,
>> still monitor this branch's progress, and intercede where necessary.
>> Ultimately, development would suffer less from the current bottleneck
>> effect, allowing contributers to play a larger role.
>
> This sounds like more work than what happens now.  How is more work supposed
> to make ruby development faster?

It is indeed more work than happens now. Now being the time of severe
ticket backlogs on Redmine (the statistics for which I cannot provide
as Redmine is, again, unresponsive), and more requests than I have the
decency to reference languishing without so much as an acknowledgment.
I am but an insignificant player, yet can vouch that I have a
multitude of tickets in my buffer which remain locally because
similar, submitted requests have been left to perish. The workflow we
propose will alleviate this situation by distributing this work to
extra and eager pairs of hands. It will require slightly more work to
the benefit of significantly more progress.

>> * Complicated feature proposals would take the form of branches. This
>> solves the current problem of patches rotting in Redmine because `rebase`
>> and Git's superior merging capability allow the patch to be kept in step
>> with the trunk. Further, this allows parties interested in the feature to
>> collaborate on the branch; only submitting a pull request when they deem it
>> mature.
>
> Can't this be done now with git-svn?

Such an approach can be poorly approximated by an intermediate user of
said gateway. But as the MBARI patches, the recent interest in the
win32-unicode branch, my trifling work on Onigurma, and many more
cases in recent memory serve to illustrate, this process is clumsy and
inelegant.

Put simply, while git-svn may flawlessly translate SVN to Git; the
converse can never be true: Git users must degrade their work, casting
aside the rich metadata Git supplies, so SVN can stomach it.  Your
argument may be more properly put if reversed: Can the few who prefer
to retain the SVN toolset be accommodated by git-svn in conjunction
with a Git repository? Why yes, they can.

>> * Working with the trunk becomes more pleasurable due to Git's advanced
>> toolset and significant performance benefits.
>
>
> I've found git less pleasurable and it's "advanced" toolset cumbersome and
> unfriendly.  It's largely been a performance detriment to me.

Perhaps if you could explain your difficulties, we may assist you in
overcoming them? If you desire to use Git as SVN, the interface is so
similar, that if one establishes compatiability aliases, the key
remaining difference is Git's superior speed. By "performance
benefits", I was referring to these magnificent speed benefits, which
are especially noticeable with large repositories such as Ruby's. :-)

09/03/2009 09:40 AM - Ilya Grigorik

+1

I would also strongly encourage github as an option, instead of running own servers. To me, the main benefit of the switch is not even necessarily in Git vs SVN as much as in the transparency that it would enable. Let's face it, most of us are on GitHub already, following a ton of projects. Having Ruby there would just make sense.

09/03/2009 09:51 AM - Jeremy Kemper

On Wed, Sep 2, 2009 at 4:29 PM, Eric Hodel<drbrain@segment7.net> wrote:
> On Sep 2, 2009, at 11:19, Run Paint Run Run wrote:
>
>> Feature #2033: Move Core Development to Git
>> http://redmine.ruby-lang.org/issues/show/2033
>>
>> Author: Run Paint Run Run
>> Status: Open, Priority: Normal
>> Assigned to: Yukihiro Matsumoto
>>
>> Following from [ruby-core:21039], I formally propose that core development
>> switches to Git. The obvious benefits include:
>>
>> * Opens Ruby development to a wider range of contributors. Ruby- and
>> non-Ruby-based projects alike have shown a dramatic upswing in contributions
>> after moving to Git.
>
> This is scientifically proven?

That's a good line. I assume you're using it rhetorically. The
proposal deserves good-faith consideration.

An observation or three:

Rails saw a surge in number of contributors, number of patches, and
patch quality after moving to git. Several contributors naturally
emerged as vetters and integrators. This widened the patch-examination
bottleneck by naturally spreading the responsibility among other
trusted contributors. No organization was required; this pleasantly
emerged as a property of the system.

I think number of contributors and patches went up just due to
transparency, accessibility, and responsiveness. It's hard to say, but
GitHub had a significant role here. I think patch quality has
increased largely because rebasing a topic branch against the main
line is extremely easy. Old fixes don't go stale.

Furthermore, we recently had an incredible experience with the first
RailsBridge bug mash:
http://wiki.railsbridge.org/projects/1/wiki/BugMash. Git was by no
means the reason for its success, but it acted as a strong enabler.
New users understood the workflow and tools with little trouble;
within two days we'd see 37 first-time contributors' patches applied
to master and hundreds of others'. We hope to repeat the experiment
before every stable gem release.

I was skeptical about moving from svn to git, but it has paid off big
time and in ways I hadn't anticipated. I've completely come around.

>> * Allows tickets to be handled by de facto topic branch maintainers. A
>> contributor interested in improving documentation, for example, could review
>> the documentation tickets, apply the relevant patches to his 'doc' branch,
>> then propose it be merged periodically. The core team could, and should,
>> still monitor this branch's progress, and intercede where necessary.
>> Ultimately, development would suffer less from the current bottleneck
>> effect, allowing contributers to play a larger role.
>
> This sounds like more work than what happens now.  How is more work supposed
> to make ruby development faster?

It's more apparent work, of course, but broadly and naturally
distributed among contributors of varying skill and interest using
tools honed for just this purpose.

>> * Complicated feature proposals would take the form of branches. This
>> solves the current problem of patches rotting in Redmine because `rebase`
>> and Git's superior merging capability allow the patch to be kept in step
>> with the trunk. Further, this allows parties interested in the feature to
>> collaborate on the branch; only submitting a pull request when they deem it
>> mature.
>
> Can't this be done now with git-svn?

It can, with caveats. You have to shove everything back through the svn funnel.

>> * Experimentation is encouraged because now anybody can branch, and
>> contribute back that branch, with impunity.
>
> Ditto.

Same.

>> * Working with the trunk becomes more pleasurable due to Git's advanced
>> toolset and significant performance benefits.
>
> I've found git less pleasurable and it's "advanced" toolset cumbersome and
> unfriendly.  It's largely been a performance detriment to me.

For decentralized development, cheap, effective branching and merging
is awesome and desperately needed. Git and many other SCMs beat the
pants off Subversion in this respect, and this alone is worth it.

In the interest of productive discussion about the topic at hand --
moving from svn to git -- I think we're all be best off discontinuing
a vim/emacsish discussion of whether git is "your style."

Best,
jeremy

09/03/2009 10:36 AM - Nobuyoshi Nakada

  • Status changed from Open to Closed

09/03/2009 10:39 AM - Nobuyoshi Nakada

09/03/2009 10:41 AM - Marc-Andre Lafortune

I'll only add to the compelling arguments presented so far a very enthousiastic "+1".

09/03/2009 12:39 PM - Nobuyoshi Nakada

  • Status changed from Closed to Open

09/03/2009 01:26 PM - Yukihiro Matsumoto

  • Assigned to changed from Yukihiro Matsumoto to Yuki Sonoda
I think there's need a lot of work to do, like better Windows git port, moving svn based tools to git, etc.

09/03/2009 02:19 PM - Luis Lavena

On Thu, Sep 3, 2009 at 6:26 AM, Yukihiro Matsumoto<redmine@ruby-lang.org> wrote:
> Issue #2033 has been updated by Yukihiro Matsumoto.
>
> Assigned to changed from Yukihiro Matsumoto to Yuki Sonoda
>
> I think there's need a lot of work to do, like better Windows git port, moving svn based tools to git, etc.

Dear Matz,

I would really like to know what are the limitation experienced using
Git on Windows that this perception of "not good enough" keep
appearing repeated times?

Perhaps this happens in the japanesse list, so would love and
appreciate someone take a couple of minutes to express those in
english.

Maybe as a community we can help solve those and improve the Windows Git port.

Thank you.
-- 
Luis Lavena
AREA 17
-
Perfection in design is achieved not when there is nothing more to add,
but rather when there is nothing more to take away.
Antoine de Saint-Exupéry

09/03/2009 04:31 PM - Yukihiro Matsumoto

In message "Re: [ruby-core:25313] Re: [Feature #2033] Move Core Development to Git"
    on Thu, 3 Sep 2009 16:02:38 +0900, Ron Mayer <rm_rails@cheapcomplexdevices.com> writes:

|Maybe as a small step in this direction the ruby project could first
|publish an official svn->git conversion of their own (or adopt the
|one on github.com/rubyspec) and insure that it's kept up-to-date?

For various reasons, we cannot move to git at once, so as a small
step, use <git://github.com/shyouhei/ruby.git>.  See

http://wiki.github.com/shyouhei/ruby/committerhowto
http://wiki.github.com/shyouhei/ruby/noncommitterhowto

							matz.

09/03/2009 05:59 PM - Michal Suchanek

2009/9/3 Yukihiro Matsumoto <matz@ruby-lang.org>:
>
> In message "Re: [ruby-core:25313] Re: [Feature #2033] Move Core Development to Git"
>    on Thu, 3 Sep 2009 16:02:38 +0900, Ron Mayer <rm_rails@cheapcomplexdevices.com> writes:
>
> |Maybe as a small step in this direction the ruby project could first
> |publish an official svn->git conversion of their own (or adopt the
> |one on github.com/rubyspec) and insure that it's kept up-to-date?
>
> For various reasons, we cannot move to git at once, so as a small
> step, use <git://github.com/shyouhei/ruby.git>.  See
>
> http://wiki.github.com/shyouhei/ruby/committerhowto
> http://wiki.github.com/shyouhei/ruby/noncommitterhowto
>
>                                                        matz.
>

I guess that's a good start.

Recent experience with git and git-svn shows that there is a wide gap
between having an official upstream git repository and locally
mirroring an upstream svn with git-svn.

Thanks

Michal

09/03/2009 10:32 PM - Jon Forums

> Maybe as a community we can help solve those and improve the Windows Git port.
> 
> Thank you.
> -- 
> Luis Lavena
> AREA 17

I found the following blog helpful when I was first evaluating msysgit:

http://www.lostechies.com/blogs/jason_meridth/archive/2009/06/01/git-for-windows-developers-git-series-part-1.aspx


I initially avoid installers like the plague until they prove themselves by not trashing my system.

As such, I started with the 7-zipped PortableGit version and have had a very good experience with the following setup on my Windows systems (I've not used the msysgit installer so I have no advice one way or the other on it)

- unzip to any directory without a space in the pathname...<GIT_INSTALL> from now on.
- add <GIT_INSTALL>\cmd to %PATH%
- generate keys via "ssh-keygen" from the Git-Bash prompt using <GIT_INSTALL>\git-bash.bat.  This correctly creates a ".ssh" dir containing your keys in the right place.
- set up global config with name, email, aliases, diff/merge tools like kdiff3, etc as well as set "core.autocrlf = false" (VERY IMPORTANT)
- upload keys to Github, gitorious, etc.
- start cloning, hacking, merging, branching...
- use either Git-Bash or standard cmd.exe for cmd line git


While I found some of Git's idioms and naming conventions strange at first, being able to type things like "git help reset" and have decent docs pop up in my browser have been great for shortening my learning curve.

So far so good for me as a user of both msysgit and git.

Jon

09/04/2009 01:10 AM - Run Paint Run Run

> I would really like to know what are the limitation experienced using
> Git on Windows that this perception of "not good enough" keep
> appearing repeated times?

Indeed. Windows support is seeming more and more like a paper tiger. We have experienced Windows developers telling us that the current situation is reasonable, and the anecdotes I've found online are along the same lines. Before this argument is repeated can it be clarified?

> moving svn based tools to git

Please could these tools be named? In the tool/ directory of trunk only make-snapshot appears to both rely on SVN and not support Git. Where are the others?

> I think there's need a lot of work to do

It would help if we could enumerate it. If we can compile a list we can determine our next steps.

09/04/2009 02:34 AM - Stephen Bannasch

I think moving to git would be great.

Some concerns expressed by Matz:

>> moving svn based tools to git
>> I think there's need a lot of work to do

> It would help if we could enumerate it. If we can compile a list we can determine our next steps.

One type of work is adapting or removing sections of code that use or depend on subversion keyword expansion. 

See one example here: 

  fixed crash in lib/logger.rb from dependency on svn keywork expansion
  http://redmine.ruby-lang.org/issues/show/1978

I don't think fixing these kind of problems is very hard ... but I haven't made any estimate of how big the task is.

09/04/2009 07:26 AM - Shyouhei Urabe

Jon wrote:
>> Some commiter of Ruby live on Windows.
>> And windows port of git, msysgit, is still preview (cygwin port is not acceptable).
>> So we can't move to git.
> 
> As a user of msysgit on Win2K, WinXP, and Vista machines I've found the current msysgit preview to be very usable.  While I personally prefer Mercurial, I'm quickly becoming a big fan of Git and Github.

That's not the point.  The problem on msysGit is that it IS a preview.  It's
not a matter of stability.  We cannot believe a preview product especially when
that preview software is a fundamental tool to us, such as git.

09/04/2009 07:53 AM - Michal Suchanek

2009/9/4 Urabe Shyouhei <shyouhei@ruby-lang.org>:
> Jon wrote:
>>> Some commiter of Ruby live on Windows.
>>> And windows port of git, msysgit, is still preview (cygwin port is not acceptable).
>>> So we can't move to git.
>>
>> As a user of msysgit on Win2K, WinXP, and Vista machines I've found the current msysgit preview to be very usable.  While I personally prefer Mercurial, I'm quickly becoming a big fan of Git and Github.
>
> That's not the point.  The problem on msysGit is that it IS a preview.  It's
> not a matter of stability.  We cannot believe a preview product especially when
> that preview software is a fundamental tool to us, such as git.
>

And if I made a new site that offered the same package and labeled it
final would you trust it then?

What is preview or final or stable is relative to the developer
releasing the package.

At the very least

 - this preview package has been tested by people writing here (and
probably many more elsewhere) so it can be labeled final by popular
vote

 - people who insist on doing so can still use a SVN mirror


Thanks

Michal

09/04/2009 08:29 AM - Shyouhei Urabe

Michal Suchanek wrote:
> 2009/9/4 Urabe Shyouhei <shyouhei@ruby-lang.org>:
>> Jon wrote:
>>>> Some commiter of Ruby live on Windows.
>>>> And windows port of git, msysgit, is still preview (cygwin port is not acceptable).
>>>> So we can't move to git.
>>> As a user of msysgit on Win2K, WinXP, and Vista machines I've found the current msysgit preview to be very usable.  While I personally prefer Mercurial, I'm quickly becoming a big fan of Git and Github.
>> That's not the point.  The problem on msysGit is that it IS a preview.  It's
>> not a matter of stability.  We cannot believe a preview product especially when
>> that preview software is a fundamental tool to us, such as git.
>>
> 
> And if I made a new site that offered the same package and labeled it
> final would you trust it then?

I can then evaluate that software.  You know, whether a release is final or not
is aside form whether I trust it or not.

> What is preview or final or stable is relative to the developer
> releasing the package.

Yes.  Trusting a software includes trusting its developer.  How can you trust
it when you cannot trust its creator?  I suspect there're reasons for the
developer to say it's still a preview.  And I trust she/he on that.

> At the very least
> 
>  - this preview package has been tested by people writing here (and
> probably many more elsewhere) so it can be labeled final by popular
> vote

Maybe.  But can those people see to that?  We are not choosing our wall clocks.
 A source code management system is vital to an open source software community.
I know you remember our repository was once cracked when we used CVS.

>  - people who insist on doing so can still use a SVN mirror

You're saying to move to Git while mirroring that Git repo with SVN?  Can that
be possible?

09/04/2009 08:45 AM - Shyouhei Urabe

Ruby is a basic infrastructure that needs to be stable.  If it goes as agile as
Rails, there should be problems.  A problem may be the hardness for Rails to
catch-up with Ruby, when both of them are equally as agile.

So sorry but I don't like the idea for Ruby to move into a fully decentralized
development.  There should be at least one single center of Ruby as we have
today.  And as a centralized development tool, Subversion is the best thing we
have.

I think a centralized SVN repo + official git-svn mirror is the best way for
ruby because that should suit for its characteristics and development style.
Most claims from git enthusiasts can be met with a git-svn mirror I believe.
The only thing that cannot be met may be "to make ruby git based anyway" kind
of groundless request.

09/04/2009 09:54 AM - Ryan Davis

On Sep 3, 2009, at 16:44 , Urabe Shyouhei wrote:

> Ruby is a basic infrastructure that needs to be stable.  If it goes  
> as agile as
> Rails, there should be problems.  A problem may be the hardness for  
> Rails to
> catch-up with Ruby, when both of them are equally as agile.
>
> So sorry but I don't like the idea for Ruby to move into a fully  
> decentralized
> development.  There should be at least one single center of Ruby as  
> we have
> today.  And as a centralized development tool, Subversion is the  
> best thing we
> have.
>
> I think a centralized SVN repo + official git-svn mirror is the best  
> way for
> ruby because that should suit for its characteristics and  
> development style.
> Most claims from git enthusiasts can be met with a git-svn mirror I  
> believe.
> The only thing that cannot be met may be "to make ruby git based  
> anyway" kind
> of groundless request.

間違いない

Urabeさんは私の太陽、私の星、私の月です

Urabeさんが大好きです


09/04/2009 02:59 PM - Federico Builes

Hello Urabe,

On Sep 3, 2009, at 6:44 PM, Urabe Shyouhei wrote:

> Ruby is a basic infrastructure that needs to be stable.  If it goes  
> as agile as
> Rails, there should be problems.  A problem may be the hardness for  
> Rails to
> catch-up with Ruby, when both of them are equally as agile.

Is this issue really related to the SCM that the project uses?

Many projects have had an increase in their number of collaborators  
when they moved to Git, but that doesn't mean that no one will be in  
charge and that it will be moving so fast that projects like Rails  
won't be able to keep up with it (I'm not entirely sure that I got  
your point there).

> So sorry but I don't like the idea for Ruby to move into a fully  
> decentralized
> development.  There should be at least one single center of Ruby as  
> we have
> today.  And as a centralized development tool, Subversion is the  
> best thing we
> have.

Excuse my lack of knowledge in this matter, but what prevents ruby- 
core from maintaining a canonical Ruby Git repository hosted in the  
same servers that SVN resides in right now (or in Github if you don't  
want to go through the admin. hassle)?
You can still give commit access only to your list of trusted members  
and this "central" repository will be the one that everyone pulls off  
when they want to get the official version.
What does SVN gives you that Git misses in this case?


> I think a centralized SVN repo + official git-svn mirror is the best  
> way for
> ruby because that should suit for its characteristics and  
> development style.

I would really appreciate it if you could be more specific in the  
"characteristics and development style" that SVN fits so well and that  
Git doesn't.

> Most claims from git enthusiasts can be met with a git-svn mirror I  
> believe.

An official git-svn mirror would be greatly appreciated, it would be  
better than the current situation, but can't we "have the cake and eat  
it too"?

Thanks

--
Federico

09/04/2009 04:02 PM - Michal Suchanek

2009/9/4 Urabe Shyouhei <shyouhei@ruby-lang.org>:

>>  - people who insist on doing so can still use a SVN mirror
>
> You're saying to move to Git while mirroring that Git repo with SVN?  Can that
> be possible?

That's certainly possible. SVN can store any code git can. It just
lacks the tools for working with the code and I would be surprised if
there was no tool for importing changesets from git to SVN.

However, there's not much difference between having a official SVN
repository and official git mirror or the other way around for the
outside world. Perhaps making git the primary repository would make it
easier for some of the core developers to use git's additional
features not available in svn. However, that's a decision for Ruby
core developers if they want these features or not.


Thanks

Michal

09/04/2009 05:43 PM - Eric Hodel

On Sep 2, 2009, at 17:38, Run Paint Run Run wrote:

>>> * Opens Ruby development to a wider range of contributors. Ruby- and
>>> non-Ruby-based projects alike have shown a dramatic upswing in  
>>> contributions
>>> after moving to Git.
>>
>> This is scientifically proven?
>
> Heh, I confess not to have orchestrated a wide-scale statistical study
> on the matter, no. The anecdotal evidence, however, is very much in
> keeping with my claim. The experience of Rails
> (http://www.igvita.com/2009/01/27/ruby-swarms-visualizing-rails-git/)

None of my contributions from the svn days showed up here.  It seems  
to be biased towards git simply due to lack of data.

I had a patch for Rails sit around until it rotted simply because  
nobody bothered to communicate back the few problems that existed in  
it.  I don't think git magically solved the problem of Rails  
developers not caring about contributions.  I'm more willing to  
believe DHH releasing his stranglehold on committers (to the central  
repository) was the real change here.

> and the Linux kernel
> (http://www.linuxfoundation.org/publications/whowriteslinux.pdf)
> mirror those of other major projects which made the transition.

I would hope that the tool designed for the linux kernel development  
workflow would make linux kernel development work well.

>>> * Allows tickets to be handled by de facto topic branch  
>>> maintainers. A
>>> contributor interested in improving documentation, for example,  
>>> could review
>>> the documentation tickets, apply the relevant patches to his 'doc'  
>>> branch,
>>> then propose it be merged periodically. The core team could, and  
>>> should,
>>> still monitor this branch's progress, and intercede where necessary.
>>> Ultimately, development would suffer less from the current  
>>> bottleneck
>>> effect, allowing contributers to play a larger role.
>>
>> This sounds like more work than what happens now.  How is more work  
>> supposed
>> to make ruby development faster?
>
> It is indeed more work than happens now. Now being the time of severe
> ticket backlogs on Redmine (the statistics for which I cannot provide
> as Redmine is, again, unresponsive), and more requests than I have the
> decency to reference languishing without so much as an acknowledgment.

Ruby has a ticket system now so fixes to problems and backlogged  
problems are much more visible. It didn't used to be this way, it used  
to appear that all problems were backlogged.

> I am but an insignificant player, yet can vouch that I have a
> multitude of tickets in my buffer which remain locally because
> similar, submitted requests have been left to perish. The workflow we
> propose will alleviate this situation by distributing this work to
> extra and eager pairs of hands. It will require slightly more work to
> the benefit of significantly more progress.

You've done a lot of good work for Ruby.  You should ask for a commit  
bit.  IMO you deserve it.  It's usually this easy:

1) show you can contribute useful stuff
2) ask for a commit bit
3) commit (maybe occasionally asking if it's ok when you're unsure)

It's as if git will make people less shy about asking to get directly  
involved. If you're going to go to be continually writing patches is  
it really that hard to ask for a commit bit?  It's not like you're  
getting turned down for a date.

>>> * Working with the trunk becomes more pleasurable due to Git's  
>>> advanced
>>> toolset and significant performance benefits.
>>
>> I've found git less pleasurable and it's "advanced" toolset  
>> cumbersome and
>> unfriendly.  It's largely been a performance detriment to me.
>
> Perhaps if you could explain your difficulties, we may assist you in
> overcoming them? If you desire to use Git as SVN, the interface is so
> similar, that if one establishes compatiability aliases, the key
> remaining difference is Git's superior speed. By "performance
> benefits", I was referring to these magnificent speed benefits, which
> are especially noticeable with large repositories such as Ruby's. :-)

Today a coworker of mine was pulling from upstream and ran into a  
conflict.  (If you just push and assume everything is ok git doesn't  
say "please pull, there are conflicts" it says something like "can't  
fast-forward" which is far less clear than the former.)

He resolved the conflict and ran `git commit` then `git rebase -- 
continue` which proceeded to give a very unclear error message.   
Instead of `git commit` he should have used `git add`, but git  
couldn't be bothered to tell him that he probably didn't want to do  
that.

On the other hand, if I have a conflict in subversion or perforce I  
get a very helpful interactive resolving tool that lets me  
interactively merge conflicts or bring up my favorite editor for  
involved conflicts.

If I walk away from my computer in the middle of a conflict and come  
back later I can easily figure out where to continue with subversion,  
perforce, even CVS.  This isn't guaranteed with git (`git add` but  
don't `git rebase --continue`? your only clue is something like "not  
on any branch" in `git status`).

I've found that for the 90% use case of a VCS (committing software to  
a shared repository), git makes me do more work.  Advanced tools  
should make me do less work.

PS: Perforce does branching and merging better.

09/04/2009 06:16 PM - Shyouhei Urabe

Federico Builes wrote:
> Hello Urabe,
> 
> On Sep 3, 2009, at 6:44 PM, Urabe Shyouhei wrote:
> 
>> Ruby is a basic infrastructure that needs to be stable.  If it goes as
>> agile as
>> Rails, there should be problems.  A problem may be the hardness for
>> Rails to
>> catch-up with Ruby, when both of them are equally as agile.
> 
> Is this issue really related to the SCM that the project uses?
> 
> Many projects have had an increase in their number of collaborators when
> they moved to Git, but that doesn't mean that no one will be in charge
> and that it will be moving so fast that projects like Rails won't be
> able to keep up with it (I'm not entirely sure that I got your point
> there).

Yes, it may not be directly a SCM issue.  The history of ruby has been a
history of unmaintained codes.  Even today without the chaos of distributed
development, there are many lines of codes in its repo which are not baby-sat.
When you want to increase number of contributions yet decrease number of
unmaintained codes, there should be some mechanism to enforce that. Ruby lacks
that now.

>> So sorry but I don't like the idea for Ruby to move into a fully
>> decentralized
>> development.  There should be at least one single center of Ruby as we
>> have
>> today.  And as a centralized development tool, Subversion is the best
>> thing we
>> have.
> 
> Excuse my lack of knowledge in this matter, but what prevents ruby-core
> from maintaining a canonical Ruby Git repository hosted in the same
> servers that SVN resides in right now (or in Github if you don't want to
> go through the admin. hassle)?
> You can still give commit access only to your list of trusted members
> and this "central" repository will be the one that everyone pulls off
> when they want to get the official version.
> What does SVN gives you that Git misses in this case?

You're saying "there's no reason not to move to git"; but I'm saying "there's
no reason to move to git".  Why you hate svn so much?  It's perfect for us.

>> I think a centralized SVN repo + official git-svn mirror is the best
>> way for
>> ruby because that should suit for its characteristics and development
>> style.
> 
> I would really appreciate it if you could be more specific in the
> "characteristics and development style" that SVN fits so well and that
> Git doesn't.

I was pointing to the fact that ruby development is centralized.  Centralized
to matz.  Have you ever seen a single line email from matz that just says
"commit that please"?  Why ruby development do not scale is clear; matz is the
bottleneck.  Decentralized development insist him (and us) to grately delegate
what he's doing now to our community.  Perhaps that should make YOU happy, but
also make matz unhappy.  If you want to hijack his / other committers' power
and authority, you should watch your step not to offend them.  To protect their
sanctuary yet to make your path for contribution, a SVN repo + git-svn mirror
is the best way I believe.

09/04/2009 06:33 PM - Jeremy Kemper

On Fri, Sep 4, 2009 at 2:16 AM, Urabe Shyouhei<shyouhei@ruby-lang.org> wrote:
> Federico Builes wrote:
>> Hello Urabe,
>>
>> On Sep 3, 2009, at 6:44 PM, Urabe Shyouhei wrote:
>>
>>> Ruby is a basic infrastructure that needs to be stable.  If it goes as
>>> agile as
>>> Rails, there should be problems.  A problem may be the hardness for
>>> Rails to
>>> catch-up with Ruby, when both of them are equally as agile.
>>
>> Is this issue really related to the SCM that the project uses?
>>
>> Many projects have had an increase in their number of collaborators when
>> they moved to Git, but that doesn't mean that no one will be in charge
>> and that it will be moving so fast that projects like Rails won't be
>> able to keep up with it (I'm not entirely sure that I got your point
>> there).
>
> Yes, it may not be directly a SCM issue.  The history of ruby has been a
> history of unmaintained codes.  Even today without the chaos of distributed
> development, there are many lines of codes in its repo which are not baby-sat.
> When you want to increase number of contributions yet decrease number of
> unmaintained codes, there should be some mechanism to enforce that. Ruby lacks
> that now.
>
>>> So sorry but I don't like the idea for Ruby to move into a fully
>>> decentralized
>>> development.  There should be at least one single center of Ruby as we
>>> have
>>> today.  And as a centralized development tool, Subversion is the best
>>> thing we
>>> have.
>>
>> Excuse my lack of knowledge in this matter, but what prevents ruby-core
>> from maintaining a canonical Ruby Git repository hosted in the same
>> servers that SVN resides in right now (or in Github if you don't want to
>> go through the admin. hassle)?
>> You can still give commit access only to your list of trusted members
>> and this "central" repository will be the one that everyone pulls off
>> when they want to get the official version.
>> What does SVN gives you that Git misses in this case?
>
> You're saying "there's no reason not to move to git"; but I'm saying "there's
> no reason to move to git".  Why you hate svn so much?  It's perfect for us.

I identify with this sentiment. I resisted moving away from svn too.

It wasn't until a few months of deeply using git that I began to
appreciate how it had changed my development style.

I think the git-svn mirror is a fine bridge. However, I encourage Ruby
core to use the bridge, too, even if just to experiment.


>>> I think a centralized SVN repo + official git-svn mirror is the best
>>> way for
>>> ruby because that should suit for its characteristics and development
>>> style.
>>
>> I would really appreciate it if you could be more specific in the
>> "characteristics and development style" that SVN fits so well and that
>> Git doesn't.
>
> I was pointing to the fact that ruby development is centralized.  Centralized
> to matz.  Have you ever seen a single line email from matz that just says
> "commit that please"?  Why ruby development do not scale is clear; matz is the
> bottleneck.  Decentralized development insist him (and us) to grately delegate
> what he's doing now to our community.  Perhaps that should make YOU happy, but
> also make matz unhappy.  If you want to hijack his / other committers' power
> and authority, you should watch your step not to offend them.  To protect their
> sanctuary yet to make your path for contribution, a SVN repo + git-svn mirror
> is the best way I believe.

Ultimately, any development workflow may be accommodated, included
protected sanctuaries.

But I think the feeling is clear: no hasty moves for unneeded benefits.

Best,
jeremy

09/04/2009 06:54 PM - Leonard Chin

Below is an edited translation of a conversation about "[Feature
#2033] Move Core Development to Git" on IRCNet's %ruby from Thursday,
September 3rd beteween 10am and 2pm JST. I'm providing this translated
log on behalf of Yugui, and with the permission of the participants.
If nothing else, it will serve as a peek into the opinions of a few
people on the "other side".

== Who ==
- n0kada: aka nobu,  Ruby Committer
- unak: aka usa, Ruby Committer (active contributer to the Windows version)
- yugui: Ruby 1.9 Release Manager
- eban: Ruby Committer (active contributer to the Windows version)

== Log ==
unak: [ruby-core:25280] He should have added that "unak doesn't read
English mails"
eban: would anyone actually know who unak is?
unak: true
n0koda: if you checkout win32-unicode-test and still don't know,
there's not much more you can do
unak: I don't think unak appears anywhere in that
n0kada: doesn't it appear in $Author$?
eban: usa
unak: it should be usa
n0kada: so it was usa. whatever
eban: "USA doesn't read English mails." would be surreal
----
eban: everyone seems to love git
unak: if they want to use git they should just use it
unak: why do they have to force it on other people?
n0kada: just git clone git://github.com/shyouhei/ruby.git
n0kada: and just linking that up with git svn should be enough?
unak: I'm pretty sure there was a clear explanation there too
n0kada: so pasting http://github.com/shyouhei/ruby/tree/trunk on the
ticket should close it?
unak: seems like nobody understands that converting the main
repository to git will only directly affect committers, not
non-committers
unak: 1) if you want to play with ruby's source using git, there are
already git repository (miirrors) so you can just do what you like
with them
unak: 2) it doesn't matter if the main repository is CVS or Subversion
or Git, it has nothing to do with any of you
n0kada: i don't think there was an explanation of git svn there...
unak: http://wiki.github.com/shyouhei/ruby/committerhowto
unak: you mean that link?
n0kada: that's the first time I've seen that
n0kada: I pasted that link and closed the ticket
eban: http://wiki.github.com/shyouhei/ruby/noncommitterhowto
unak: I think you should add it to the top of the (Ruby) wiki, but I
guess its fine just as a ticket
----
n0kada: runrun just keeps on talking
n0kada: but not with any arguments I haven't seen before
eban: where are you talking?
n0kada: on talk on freenode
unak: what are you talking about?
eban: git probably
n0kada: #2033
unak: why do they keep on trying to force other people to use git?
n0kada:  <runpaint> Because for it to be successful there has to be a
snowball effect: a couple of people use it, which encourages more
people to use it, which changes the way in which those people are
organised, which encourages more people to use it, etc. A mirror can
be ignored. I'm not saying it couldn't work, merely that the
commenters in that thread supported moving development to Git; not
just a mirror.
unak: can you summarize it to 3 lines?
n0kada: we want to use it so you guys must use it too
unak: i can't see any explanation for why a mirror isn't sufficient
n0kada: I told him to explain that after reopening the ticket
n0kada: that was my reply to his reason
unak: "a mirror won't work. because it won't work."
unak: thats all he seems to be saying
unak: this is getting annoying. We should just close svn.ruby-lang.org
unak: that's basically the situation he's looking for, right?
n0kada: including the official mirror?
n0kada: <n0kada> now usa proposed to open the official mirror and to
close svn.ruby-lang.org :)
n0kada:  <runpaint> :-D Success! :-)
unak: All we need to do now is to get Urabe to say that his mirror is
now "Official" and we're done
unak: So, who exactly benefits from not keeping svn.r.o alive?
n0kada: Who own's  http://github.com/ruby ?
n0kada: that would make it look more official
unak: lame
n0kada: No, I mean the feeling of "official/unofficial"
n0kada: i think that's the problem
unak: and I'm saying that the problem of the "feeling" is lame
eban: then you should just state that and we'll be done
n0kada: I think that was the problem from the beginning, is what I'm saling
unak: so why do we have to do this just to make runrun feel better?
unak: if anything, you should be giving more priority to my feelings
n0kada: I'm sure he just wants to feel better without getting in the way
n0kada: It's true that there are lots of tickets that haven't been dealt with
n0kada: On bottleneck is that Urabe's mirror isn't refreshed frequently enough
unak: That's enough. Let's just close svn.r.o and make Urabe's git
mirror official and announce it and get it over with
n0kada: to close svn...
unak: Refresh frequency is only a problem when you can compare it to
commits. If all you can see is the mirror then it shouldn't be a
problem
yugui: I think that git's ability to stimulate community activity is
proven by the example of rails
yugui: So, I guess its fine as long as it doesn't get in the way of
development on svn?
unak: now that there is already a git mirror, I don't understand what
more they could want.
unak: So if the problem is that they can still see the svn repository,
then we should stopping showing it to them
unak: that's just the logical conclusion I arrived at
yugui: I think that what they are asking for is a way for branches
forked from the git mirror to be merged back into a tree for release
yugui: I'm against relying on commercial services like github
unak: but, I guess it should be enough for now
unak: "a way for branches forked from the git mirror to be merged back
in a tree for release"
unak: What ever you use, some kind of tool will be needed for that
yugui: svn's history and merge information is rather weak
yugui: you lose information
yugui: that gets in the way of managing further forks
yugui: I think its those kind of minor details that adversely affect
the activity of the community
unak: that's enough. please, just go and use git
yugui: I think the problem can be solved by using primary git
repository, and making svn a mirror of that
n0kada: what kind of information is lost?
yugui: n0kada: When you merge, information relating to the merge branch is lost
yugui: and if svn is used as the main repository, the hashes change
when you do a git svn dcommit
lchin: yugui: that problem is partially solved from svn 1.5 onwards
with svn:mergeinfo, though its kind of a hack
yugui: After merging a particular branch, merging other forks of that
particular branch becomes difficult
yugui: by difficult, i mean its basically impossible to do so while
keeping git-style history information from the merge point
yugui: I guess you could just rebase, but I think that communication
cost would kill the community
yugui: I just got a similar request from wycats
unak: In exchange I'll die, just hurry up and change over to git
n0kada: will everything be solved by having an svn mirror?
yugui: I think it would be a good idea to keep svn around as a branch
which offers a high probability of leading to a release
n0kada: releasing directly from git would be problematic
yugui: rather than considering svn as "the main place where releases
come from", considering it as "the branch where there is a high
probability of being merged into the master" makes it easier for other
developers to get into the flow of development
yugui: in that case, all the hard work gets left to the release manager
yugui: comitters who want to keep on using svn can keep on using it
n0kada: but if we get bug reports, how do we even know if its the
branch we know about?
n0kada: dying from just the bug tracking workload would suck
yugui: thats why there is a unique hash
yugui: if you can't identify the branch, you can just reject the bug
report and ask for the details of the branch
n0kada: I guess if we ignore versions compiled from git then...
yugui: I see. If we release from git, then people working on platform
dependency issues could have a hard time of it
n0kada: I don't object to having an entry point for git, and a
separate entry point from svn
yugui: how about you, unak?
unak: what?
yugui: are you ok with having both?
unak: whatever is ok
yugui: "whatever is ok" sounds more like a critical response to me
yugui: is that an objection to the proposal to stop using svn?
unak: I'll just fork it
n0kada: from git?
n0kada: [ruby-core:25309] what do they mean by "svn based tools"?
n0kada: i guess they mean tool/
yugui: I think make-snapshot is the only problem
eban: how about the auto-update of version.h
n0kada: i forgot about version.h
unak: personally, i don't care about "official", so you can do what
you want and just not worry about me
n0kada: the snapshot can just continue to be produced from the svn frontend
n0kada: with r12345 and r12346, its easy to see which is newer, but
with abc1234 and abcd4321 hashes, you can't easily tell which is newer
yugui: I think you'll get used to it
n0kada: I don't think I'll suddenly be able to understand raw hashes
yugui: at any rate, not having unak around will be a problem
unak: I'm sure there won't be any problem
unak: thanks to git, the patches will just roll in
yugui: that isn't a fair response. You know that there are lots of
subtleties with OSes that are really tricky to handle well
yugui: especially with windows, people willing to deal with that
platform are few and far between
unak: if its important, then someone will eventually deal with it
right? It's "open source"
n0kada: whatever the backend for svn is, whether fsfs or git or
whatever, I don't care. But I don't see any good reason to throw away
svn.
yugui: I can't deny that small details like revision number are a
pain, just like how having git mirror svn leads to lots of small,
problematic details that raise the bar for participation
yugui: unfamiliarity with git's collection of commands is another
undeniable issue
yugui: Anyway, could you please add a reply to the ticket about the
lack of a reason to get rid of svn?
yugui: the worst thing to have is a communication gap
----

== END OF TRANSLATION ==

--
Leonard Chin

09/04/2009 10:18 PM - Jon Forums

On Fri, 4 Sep 2009 07:26:01 +0900
Urabe Shyouhei <shyouhei@ruby-lang.org> wrote:

> Jon wrote:
> >> Some commiter of Ruby live on Windows.
> >> And windows port of git, msysgit, is still preview (cygwin port is not acceptable).
> >> So we can't move to git.
> > 
> > As a user of msysgit on Win2K, WinXP, and Vista machines I've found the current msysgit preview to be very usable.  While I personally prefer Mercurial, I'm quickly becoming a big fan of Git and Github.
> 
> That's not the point.  The problem on msysGit is that it IS a preview.  It's
> not a matter of stability.  We cannot believe a preview product especially when
> that preview software is a fundamental tool to us, such as git.

I strongly agree with your point that a fundamental development tool must be stable for the core committers and their workflows.  Quite frankly, anything else is waste of their precious and limited time.

Having trade in your SVN SuperHero utility belt for Git Grasshopper training wheels in the short term really is a developer tax that no one is really eager to pay.

That said, I felt strongly enough that the "preview" label to the current msysgit was incorrect that I came out of "lurk mode" to share my successful experience with msysgit on Windows, and hopefully encourage others to give it a try and decide for themselves.  I also have no affiliation with the msysgit project other than a happy user.

One thing that may help minimize the developer tax of learning Git and evaluating whether msysgit in particular will meet the needs of the core developers using Windows, is to add a Committers Workflow Recipes page to your http://wiki.github.com/shyouhei/ruby

Similiar to your http://wiki.github.com/shyouhei/ruby/committerhowto the page would primarily focus on providing Ruby-specific Git workflows that help SVN-based committers quickly get productive with Git.  For example, it could be used as a "whiteboard" of sorts in which a committer my post their favorite SVN time-saving trick "How do I do ... in Git?" and others with more Git expertise could answer.

Sure, one can use Google and find a bunch of useful Git tidbits, but having ruby-core Git usage specifics in one place is a value add.

The Committers Workflow Recipes wiki page does not address the perception of msysgit instability, but I think it could dramatically help lower the developer tax of switching to Git for ruby-core specifics.  And it should help anyone evaluating msysgit's stability be able to quickly focus on whether msysgit is stable for their particular workflows.

Jon

09/05/2009 03:04 AM - Masayoshi Takahashi

Hi all,

2009/9/3 Yukihiro Matsumoto <matz@ruby-lang.org>:
> For various reasons, we cannot move to git at once, so as a small
> step, use <git://github.com/shyouhei/ruby.git>.  See
>
> http://wiki.github.com/shyouhei/ruby/committerhowto
> http://wiki.github.com/shyouhei/ruby/noncommitterhowto


I like the phrase 'History repeats Itself.'

Subversion is not the first SCM for development of Ruby.
Ruby had used CVS in old days. I guess it is good thing
for us to know (or remember) when and how to move
from CVS to SVN.


On 2005-07-01, about 4 years ago, Shugo suggested to use SVN
as official SCM of Ruby. ([ruby-dev:26421])
At that time, some pros and cons were posted in ML.

1. In SVN, making branch is fast
2. In SVN, making diff to HEAD is fast too
3. WinCVS's graph function is good; TortoiseSVN's one is bad
4. TortoiseSVN in 1.14 is not stable(but 1.2.1 seems stable)
5. In SVN, commit is atomic; its commit log is useful when
   many files are modified.
6. BerkleyDB backend is(was?) not stable. FSFS is stable(?)

We also talked about tools for Windows (as we do now for git).
Some people said TortoiseSVN seemed good but unstable,
and svn commandline client is stable and good for CLI people.

On 2005-07-03, Kouhei Sutou made an experimental repository
of Ruby used by cvs2svn. Some commiters used it and found
some functions of svn was slower than CVS, such as
annotate and log.

But for a while, CVS was continued to use as one true official
SCM tool of Ruby. I could not find the main reason of it.

On 2006-11-28 (more than one year later), usa wrote a summary
of 1.8, 1.9 and moving to SVN ([ruby-dev:29964]).
In the background of this, there was a problem how to merge
YARV into Ruby. Some thought It's the chance to move to SVN.
(cf. [ruby-core:9385])

On 2006-12-20,  the mail '[ruby-dev:30039] CVS freeze' was posted
by Shugo. CVS repository was freezed.

On 2006-12-21, the mail '[ruby-dev:30043] SVN ready' was posted
by ko1. SVN repository was ready for use.

Since then, Ruby has used SVN as the official SCM.


That's all.
IMHO, the change of development environment of Ruby is not fast,
but when the chance has come, it happens at the end.
So, if git is better than SVN for Ruby, we will move to git some day.


Thanks,

Masayoshi Takahashi

09/05/2009 03:37 AM - Michal Suchanek

2009/9/4 masayoshi takahashi <takahashimm@gmail.com>:
> Hi all,

Hello

> IMHO, the change of development environment of Ruby is not fast,
> but when the chance has come, it happens at the end.
> So, if git is better than SVN for Ruby, we will move to git some day.
>

At the same time it is necessary to speak about moving to git to get
the lists of pros and cons of the different SCMs as viewed by
different people involved with Ruby in different ways.

Also as a result of this talk we got the git mirror mentioned above
which may not be perfect but is certainly helpful.

Thanks

Michal

09/05/2009 04:51 AM - Eleanor McHugh

The point I suspect that a lot of those pushing for the move to git  
are missing is that the current core team are comfortable with SVN.  
There has to be a compelling argument for how the change would support  
their existing workflow but from what I've read the pressure is mainly  
about how git will appeal to a broader community: a community that if  
it were really so keen for extending development could already fork  
MRI and take the codebase in new directions.

Ellie

Eleanor McHugh
Games With Brains
http://slides.games-with-brains.net
----
raise ArgumentError unless @reality.responds_to? :reason

09/05/2009 05:20 AM - Rick DeNatale

On Fri, Sep 4, 2009 at 3:51 PM, Eleanor
McHugh<eleanor@games-with-brains.com> wrote:
> The point I suspect that a lot of those pushing for the move to git are
> missing is that the current core team are comfortable with SVN.

A very correct point,  I'm in complete agreement.


> There has to
> be a compelling argument for how the change would support their existing
> workflow but from what I've read the pressure is mainly about how git will
> appeal to a broader community: a community that if it were really so keen
> for extending development could already fork MRI and take the codebase in
> new directions.

Actually having made the transition between svn (and svk at times) and
git, I'd say one needs to get comfortable with the changes one
must/should make to ones workflow.  It's like learning to ride a bike
you need to get the confidence that you can keep your balance.

Git is not just a new svn. Although you can start out using it as if
it were, eventually you'll run into things which will confuse you.
I've run into similar issues as Eric Hodel reported with git, but it's
not that such things are unique to git, I've run into similar things
with svn and other version control systems in the past, it's just that
the way in, and out of those kind of confusing places is different.

On the other hand, in retrospect, I seem to find myself in those
strange places far less frequently with git than with svn. And the
fact that git changes are non-destructive gives me more confidence.

As for being too agile, as others have pointed out git doesn't force a
wild-west approach to the code base.  Linux has been using git for
longer than any open source project, and Linus and his committers have
maintained control.

What git does though is allow users of the software to maintain local
patches which are both easy to submit for consideration as part of the
main branch, but also easily keep those patches in sync with the main
branch as it evolves.

I also should say something about the effect that github has had, by
adding 'social' features to git, making it easy for both project
owners and contributors to have visibility to what's happening on a
family of forks, github makes contributing to, and maintaining an open
source project much more pleasant, once you get used to how git and
github work.

My purpose here isn't to push or force anyone to 'move' to git, but I
hope it encourages more experimentation with it as a means of
self-education.


-- 
Rick DeNatale

Blog: http://talklikeaduck.denhaven2.com/
Twitter: http://twitter.com/RickDeNatale
WWR: http://www.workingwithrails.com/person/9021-rick-denatale
LinkedIn: http://www.linkedin.com/in/rickdenatale

09/05/2009 08:36 AM - Joshua Ballanco

On Sep 4, 2009, at 12:51 PM, Eleanor McHugh wrote:

> The point I suspect that a lot of those pushing for the move to git  
> are missing is that the current core team are comfortable with SVN.  
> There has to be a compelling argument for how the change would  
> support their existing workflow but from what I've read the pressure  
> is mainly about how git will appeal to a broader community: a  
> community that if it were really so keen for extending development  
> could already fork MRI and take the codebase in new directions.

I just wanted to jump in and point out that this has, in fact, already  
been happening. JRuby has Git as its official repo at http://github.com/jruby/jruby 
, and MacRuby now has a Git repo that mirrors the core SVN repo at: git://git.macruby.org/macruby/MacRuby.git 
  (see the message at: http://lists.macosforge.org/pipermail/macruby-devel/2009-August/002261.html 
  for more information on that).

Cheers,

Josh

09/05/2009 08:37 AM - Yehuda Katz

On Fri, Sep 4, 2009 at 12:51 PM, Eleanor McHugh <
eleanor@games-with-brains.com> wrote:

> The point I suspect that a lot of those pushing for the move to git are
> missing is that the current core team are comfortable with SVN. There has to
> be a compelling argument for how the change would support their existing
> workflow but from what I've read the pressure is mainly about how git will
> appeal to a broader community: a community that if it were really so keen
> for extending development could already fork MRI and take the codebase in
> new directions.
>

That has actually already happened with Ruby Enterprise Edition. I do not
consider this a good thing.


>
> Ellie
>
> Eleanor McHugh
> Games With Brains
> http://slides.games-with-brains.net
> ----
> raise ArgumentError unless @reality.responds_to? :reason
>
>
>


-- 
Yehuda Katz
Developer | Engine Yard
(ph) 718.877.1325

<br><br><div class="gmail_quote">On Fri, Sep 4, 2009 at 12:51 PM, Eleanor McHugh <span dir="ltr">&lt;<a href="mailto:eleanor@games-with-brains.com">eleanor@games-with-brains.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

The point I suspect that a lot of those pushing for the move to git are missing is that the current core team are comfortable with SVN. There has to be a compelling argument for how the change would support their existing workflow but from what I&#39;ve read the pressure is mainly about how git will appeal to a broader community: a community that if it were really so keen for extending development could already fork MRI and take the codebase in new directions.<br>

</blockquote><div><br></div><div>That has actually already happened with Ruby Enterprise Edition. I do not consider this a good thing.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">


<br>
Ellie<br><font color="#888888">
<br>
Eleanor McHugh<br>
Games With Brains<br>
<a href="http://slides.games-with-brains.net" target="_blank">http://slides.games-with-brains.net</a><br>
----<br>
raise ArgumentError unless @reality.responds_to? :reason<br>
<br>
<br>
</font></blockquote></div><br><br clear="all"><br>-- <br>Yehuda Katz<br>Developer | Engine Yard<br>(ph) 718.877.1325<br>

09/05/2009 05:15 PM - Brent Roman

From my recent experiences using a git mirror to manage and merge the MBARI
patches, I can appreciate, and agree completely with, Rick's comments
(below).  For anyone used to CVS or SVN, Git brings a steep learning curve. 
It's a disruptive "new paradigm" with capabilities as amazing as its cryptic
error messages.

My learning experience was bewildering, but not too terribly frustrating. 
The fact is that there are now a lot of good resources on the web to ease
the pain.  The only real hacking required in applying my patches to a git
mirror repo was to write a short Ruby script that stripped the SVN key
expansions from them.
Otherwise, strings like $Date$ or $Author$ would prevent patches from
applying as git does not maintain such metadata in source files.  Its design
philosophy is to leave source absolutely untouched.  This causes real grief
only in the couple places where one sees code like (in runner.rb):

rcsid = %w$Id: runner.rb 11708 2007-02-12 23:01:19Z shyouhei $
Version = rcsid[2].scan(/\d+/).collect!(&method(:Integer)).freeze

After using git, I feel that features like the much touted "rebase" are not
all they were advertised to be.  If one has conflicts, rebase won't fix
them.  But rebase does automate away much of the tedium of "following the
dancing HEAD" that seems to be associated with getting patches accepted.  

For larger patches, following the HEAD can be a real chore.  I merged the
MBARI patches with four different Ruby versions.  First with the version
1.6.8 (don't laugh :-) we still use in our embedded ARM targets, then with
what I thought was the current production release (1.8.7), then with 1.8.6
(for EngineYard) and finally with 1.8 HEAD for Nobu.  Rebase really wasn't
much use for such extensive modifications.  By the end of the fourth round,
I was pretty tired.  Nobu probably had to do yet another round before he
could apply the subset that he finally accepted into the, by then yet
further evolved, HEAD.  The moral is:  in the current system, large patch
sets rot quickly and getting them into the core requires dogged
determination.  The key crash bug fixes for Continuations were first
submitted to list as patches years before I finally put up my "MBARI
patches" web site.

Right now, the core developers are, understandably, overworked and really
seem to dislike forking the source tree, as they alone are responsible for
its integrity.  But, experimental forks are key to testing new features. 
This is where a decentralized source management system like git might help: 
by encouraging forks and spreading the maintenance load among many more
specialized developers, leaving the core team to focus on new development
and aggregating patches (from forks) already vetted by trusted lieutenants.

- brent



Rick DeNatale wrote:
> 
> 
> Actually having made the transition between svn (and svk at times) and
> git, I'd say one needs to get comfortable with the changes one
> must/should make to ones workflow.  It's like learning to ride a bike
> you need to get the confidence that you can keep your balance.
> 
> Git is not just a new svn. Although you can start out using it as if
> it were, eventually you'll run into things which will confuse you.
> I've run into similar issues as Eric Hodel reported with git, but it's
> not that such things are unique to git, I've run into similar things
> with svn and other version control systems in the past, it's just that
> the way in, and out of those kind of confusing places is different.
> 
> On the other hand, in retrospect, I seem to find myself in those
> strange places far less frequently with git than with svn. And the
> fact that git changes are non-destructive gives me more confidence.
> 
> As for being too agile, as others have pointed out git doesn't force a
> wild-west approach to the code base.  Linux has been using git for
> longer than any open source project, and Linus and his committers have
> maintained control.
> 
> What git does though is allow users of the software to maintain local
> patches which are both easy to submit for consideration as part of the
> main branch, but also easily keep those patches in sync with the main
> branch as it evolves.
> 
> ...
> 

-- 
View this message in context: http://www.nabble.com/-ruby-core%3A25285---Feature--2033--Move-Core-Development-to-Git-tp25262987p25306016.html
Sent from the ruby-core mailing list archive at Nabble.com.

09/06/2009 12:31 AM - mathew murphy

On Wed, Sep 2, 2009 at 19:50, Jeremy Kemper <jeremy@bitsweat.net> wrote:

> For decentralized development, cheap, effective branching and merging
> is awesome and desperately needed. Git and many other SCMs beat the
> pants off Subversion in this respect, and this alone is worth it.
>

OK, so now explain why Git, and why none of the many other SCMs.

For example, bzr has a much simpler to understand interface than Git, and
unlike Git it has a proper Windows version. It allows decentralized,
disconnected development, and supports easy feature branching.

Bzr also has excellent integration with RedMine, and there's the option of
using LaunchPad if something even more elaborate is needed.

So, why not bzr?


mathew
-- 
<URL:http://www.pobox.com/~meta/>

On Wed, Sep 2, 2009 at 19:50, Jeremy Kemper <span dir="ltr">&lt;<a href="mailto:jeremy@bitsweat.net">jeremy@bitsweat.net</a>&gt;</span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

For decentralized development, cheap, effective branching and merging<br>
is awesome and desperately needed. Git and many other SCMs beat the<br>
pants off Subversion in this respect, and this alone is worth it.<br></blockquote><div><br>OK, so now explain why Git, and why none of the many other SCMs.<br><br>For example, bzr has a much simpler to understand interface than Git, and unlike Git it has a proper Windows version. It allows decentralized, disconnected development, and supports easy feature branching.<br>
<br>Bzr also has excellent integration with RedMine, and there&#39;s the option of using LaunchPad if something even more elaborate is needed.<br><br>So, why not bzr?<br><br></div></div><br clear="all">mathew<br>-- <br>&lt;URL:<a href="http://www.pobox.com/~meta/">http://www.pobox.com/~meta/</a>&gt;<br>

09/06/2009 12:48 AM - Luis Lavena

On Sat, Sep 5, 2009 at 5:31 PM, mathew<meta@pobox.com> wrote:
> On Wed, Sep 2, 2009 at 19:50, Jeremy Kemper <jeremy@bitsweat.net> wrote:
>>
>> For decentralized development, cheap, effective branching and merging
>> is awesome and desperately needed. Git and many other SCMs beat the
>> pants off Subversion in this respect, and this alone is worth it.
>
> OK, so now explain why Git, and why none of the many other SCMs.
>
> For example, bzr has a much simpler to understand interface than Git, and
> unlike Git it has a proper Windows version. It allows decentralized,
> disconnected development, and supports easy feature branching.
>
> Bzr also has excellent integration with RedMine, and there's the option of
> using LaunchPad if something even more elaborate is needed.
>
> So, why not bzr?
>

Been user of Bazaar for long time, dealing with projects in LaunchPad
and locally at our company.

Pros:
- Able to publish a repository over a dumb protocol make it easy to
share with others quick code.
- Extensible by plugins

Cons:
- Startup time of Bzr for command line commands is a a killer. To
solve that you need to use the Bzr shell.
- To switch between branches of a project you need to clone a
different working copy, unlike Git.
- LaunchPad information and distribution can be overwhelming for newcomers.


During my usage of Bazaar for development of RubyInstaller found a
series of performance penalties when dealing with the checkout tree
generated by all the tools and files the project generates.

After dealing with that slowness, did a test with Git and what is
considered a "preview" version of it for Windows. To my surprise,
performance was great, and scan of changed files, even on huge working
copies ended being even faster than subversion.

Anyhow, just my personal experience.
-- 
Luis Lavena
AREA 17
-
Perfection in design is achieved not when there is nothing more to add,
but rather when there is nothing more to take away.
Antoine de Saint-Exupéry

09/06/2009 01:04 AM - Eero Saynatkari

Excerpts from Aaron Patterson's message of Sat Sep 05 01:00:11 +0300 2009:
>
> I agree.  Git is not a magical potion that makes the patches roll in.

Actually, Git *is* a magical potion in the sense that a
sufficiently advanced sociology is indistinguishable from
magic.

There is, purely on technical merits, nothing wrong with
using SVN or any other version control system, but moving
to Git would undoubtedly increase interest in contributing
by a significant factor compared to any other solution for
some unknown reason.

One aspect that is not being adequately addressed has been
brought up as sort of a side note: Github. Say of it what
you will, but the current development model of Ruby, from
an outsider's view, is very Web 0.3. Can anyone tell me,
offhand, the sequence of links to click to view the latest
commits to Ruby 1.8.8 in the SVN repository? Add to this
the preceived opacity of the development process, and you
have all the ingredients needed to scare the more timid
among us off.

I personally have no desire whatsoever to be exposed to
the MRI codebase when it is not an absolute necessity,
and the actual benefits of having all kinds of yahoos
writing patches are probably debatable, but accessibility
*is* currently an issue.

> Switching scm's is something for the core team to decide.  We should  
> stop talking about this bike shed and pay more attention to stuff that  
> matters.

I find "law of triviality" to be a better description than
"bike shedding," especially if it is ANSI-coloured green.


Eero
--
Magic is insufficiently advanced technology.

09/06/2009 04:04 AM - Eleanor McHugh

On 5 Sep 2009, at 17:03, Eero Saynatkari wrote:
> I personally have no desire whatsoever to be exposed to
> the MRI codebase when it is not an absolute necessity,
> and the actual benefits of having all kinds of yahoos
> writing patches are probably debatable, but accessibility
> *is* currently an issue.

Agreed. I've occasionally considered getting involved in core  
development but the whole process seems very opaque and as much of my  
interest is in low-level uses of Ruby - which necessarily means  
forking and extensive hacking - I've allowed myself to be daunted by  
the uncertainty of the existing arrangements.

This is less an issue of tools than of social factors, and whilst  
moving to git may change some of those it's not guaranteed to make a  
difference.


Ellie

Eleanor McHugh
Games With Brains
http://slides.games-with-brains.net
----
raise ArgumentError unless @reality.responds_to? :reason

09/06/2009 06:43 AM - Rick DeNatale

On Sat, Sep 5, 2009 at 4:54 PM, Ron
Mayer<rm_rails@cheapcomplexdevices.com> wrote:
> mathew wrote:
>> OK, so now explain why Git, and why none of the many other SCMs.
>> For example, bzr has a much simpler to understand interface than Git,

>> So, why not bzr?
>
> One factor might be whether the software has a critical mass of
> users -- both to make sure the software stays around and to have
> a good chance community members are familiar with the software.
>
...
> Git (used by Linux, Gnome, Perl, Rails, X.org) or

And LOTs of open-source ruby projects
    Many ruby projects formerly on rubyforge or other self hosted svn
repositories are now cloned on github, and in lots of cases the way it
appears to me that's where they are actively maintained.
   Rubyforge has provided git as an alternative to svn for some time
now.  In the case of my RiCal gem, I have got github and Rubyforge
repositories containing it.


-- 
Rick DeNatale

Blog: http://talklikeaduck.denhaven2.com/
Twitter: http://twitter.com/RickDeNatale
WWR: http://www.workingwithrails.com/person/9021-rick-denatale
LinkedIn: http://www.linkedin.com/in/rickdenatale

09/06/2009 07:12 AM - Rick DeNatale

On Sat, Sep 5, 2009 at 5:39 PM, Jim Weirich<jim.weirich@gmail.com> wrote:


> Eric suggested I blog this in case of wider interest.  So, if you are
> interested in using p4merge (or perhaps other merge tools) with git, you can
> see http://onestepback.org/index.cgi/Tech/Git/UsingP4MergeWithGit.red.

Nice. I'll have to take that for a test drive.

What was the other redeeming aspect?


-- 
Rick DeNatale

Blog: http://talklikeaduck.denhaven2.com/
Twitter: http://twitter.com/RickDeNatale
WWR: http://www.workingwithrails.com/person/9021-rick-denatale
LinkedIn: http://www.linkedin.com/in/rickdenatale

09/06/2009 09:59 AM - Run Paint Run Run

It would be a real shame if after all this discussion and enthusiasm we just maintained the status quo.

A possible compromise is to incrementally move to Git by splitting the stdlib into one Git repository per library. They could either be periodically merged back into SVN or, ideally, distributed as gems. This would:

* Begin the process of opening up Ruby development by bringing these libraries to the community.
* Encourage new maintainers by establishing a sense of ownership for libraries. This responsibility could be predicated on the creation of a full test suite and documentation.  
* Drastically reduce the workload of the core maintainers by freeing them from many bug reports and maintenance headaches.
* Significantly lower the barrier to entry for would-be contributors. 
* Reduce the number of people who need SVN access, thus benefiting security.
* Enable the core developers to retain current working practices.
* Free up resources to focus on how the stdlib should change for Ruby 2.
* Leave Ruby leaner.

This wouldn't need to be an all-or-nothing move. Libraries with active maintainers could remain in SVN at their discretion. Nor would it wrest anybody of control. Core developers would have commit access to each component and full control over what gets merged/bundled before a release. They would also exercise control over significant changes to the libraries, should they wish.

This thread shows that their is significant interest in making Ruby's development distributed and open. The Unmaintained Code thread shows that there are volunteer maintainers for want of asking, and that was without any publicity outside of ruby-core. RubyGems, Rake, and MiniTest show the utility of this approach. 

There's passion here. Feed it.

09/06/2009 11:13 AM - Ryan Davis

On Sep 5, 2009, at 17:59 , Run Paint Run Run wrote:

> RubyGems, Rake, and MiniTest show the utility of this approach.

I'm really not comfortable with you using one of my projects as  
justification for your idea. Especially since I'm completely against  
your idea.

I should also point out that rubygems is on subversion and minitest is  
on *gasp* perforce, so they should be considered counterexamples.

Rake is, I believe, officially on git... and yet, it seems to have had  
far fewer releases (barring compatibility fix releases) and accepts  
far fewer contributions than minitest or rubygems.

> There's passion here. Feed it.

We're WAY beyond passion. I don't think it should be fed.

There is nothing stopping you or anyone else from using git to work on  
ruby. Indeed, it has been pointed out several times in this thread,  
yet that seems to be ignored continuously. There is no reason for you  
or anyone else to be pushing git on others.

This zealotry is tiring.

zealot |ˈzelət|
noun
a person who is fanatical and uncompromising in pursuit of their  
religious, political, or other ideals.
• ( Zealot) historical a member of an ancient Jewish sect aiming at a  
world Jewish theocracy and resisting the Romans until ad 70.
DERIVATIVES
zealotry |-ətrē| noun
ORIGIN mid 16th cent. (in the sense [member of an ancient Jewish  
sect] ): viaecclesiastical Latin from Greek zēlōtēs, from zēloun  
‘be jealous,’ from zēlos (seezeal ).

THE RIGHT WORD
An enthusiast displays an intense and eager interest in something (: a  
sky-diving enthusiast).
A fanatic is not only intense and eager but possibly irrational in his  
or her enthusiasm; fanatic suggests extreme devotion and a willingness  
to go to any length to maintain or carry out one's beliefs (: a fly- 
fishing fanatic who hired a helicopter to reach his favorite stream).
A zealot exhibits not only extreme devotion but vehement activity in  
support of a cause or goal (: a feminist zealot who spent most of her  
time campaigning for women's rights).
An extremist is a supporter of extreme doctrines or practices,  
particularly in a political context (: a paramilitary extremist who  
anticipated the overthrow of the government).
But it is the bigot who causes the most trouble, exhibiting obstinate  
and often blind devotion to his or her beliefs and opinions. In  
contrast to fanatic and zealot, the term bigot implies intolerance and  
contempt for those who do not agree (: a bigot who could not accept  
his daughter's decision to marry outside her religion).

09/06/2009 09:18 PM - Florian Gilcher

> It would be a real shame if after all this discussion and enthusiasm we just maintained the status quo.

Sorry, but long discussions usually show that the proposal didn't find widespread acceptance. I think that it is far more important that this move not be taken lightly.

> A possible compromise is to incrementally move to Git by splitting the stdlib into one Git repository 
> per library. They could either be periodically merged back into SVN or, ideally, distributed as gems. 
> [...]

Actually, SVN is quite good to manage a standard lib in the style that is present. You can checkout subtrees, etc. All those things are not possible with GIT. 

You are proposing a significant change in the way ruby is organized. Someone would have to check for changes in other repositories regularly. Where are those repositories hosted? What if one of them is down? Do rules that apply to ruby trunk/master also apply to their trunk/master? Also, the number of people with indirect, possibly unchecked access to stdlib libraries could rise.

I don't know whether you followed the GHC 'move' to GIT. (Long story short: it didn't really happen) I wouldn't want that in Ruby.

How to you merge history if anyone working on stdlib uses a different VCS? 
 
> This wouldn't need to be an all-or-nothing move. Libraries with active maintainers could remain in SVN 
> at their discretion. Nor would it wrest anybody of control. 

This would mean splitting stdlib into (at least) two kinds of libraries that have to be handled differently.

> This thread shows that their is significant interest in making Ruby's development distributed and open. 

It also shows that there is interest in keeping it under control. 

> There's passion here. Feed it.

I don't like passion as a technical argument. I for example dislike git. It is a great implementation of a distributed filesystem with no good client, mediocre man pages, arcane behaviour (fast-forwarding branches for example) and far too many ways to shoot yourself in the foot. Feed it.

Actually, I really like the way development on darcs works: Patches are send to a mailing list, reviewed, and potentially merged. There are not a lot of people that are actually allowed to pull patches into main. So the repos is really closed down, but all patches are offical (and can be pulled by anyone).

Also available in: Atom PDF