Why git instead of mercurial?

It seems like the hot new thing these days in Ruby-land is to host
your project in git. Cool....I'm very glad distributed vc is finally
getting the attention it deserves.

However, I'm curious...why are so many in the Ruby community flocking
to git instead of mercurial? It seems that Python/C would be a more
appealing choice than Perl/C...and given that they're largely
feature-identical. I'd appreciate any additional insight you might
provide.

Thanks!
John

I really don't think the internal implementation has that much
influence over the popularity of the chosen SCMs. I think it has more
to do with the fact that Git is the fastest (but not by much) and has
a greater deal of general use compared to Mercurial. Also, Git is
fairly low level, and I think that a good deal of the Ruby developers
out there want to have this amount of control over their repos.

Plus, honestly, using Git has improved my project work flow, albeit
subtly, by helping me focus on individual topics when changing code,
and providing me ways of organizing my code. Personally I have grown
to prefer the Git way of managing branches compared to Mercurial (hg
making a separate copy on the HD in a new folder, whereas in Git all
branches are managed in the same folder).

Plus, with GitHub.com now, it's hard to say no. Where's the hghub.com?

Matt

···

On Tue, Mar 25, 2008 at 1:52 AM, John Wells <lists@sourceillustrated.com> wrote:

It seems like the hot new thing these days in Ruby-land is to host
your project in git. Cool....I'm very glad distributed vc is finally
getting the attention it deserves.

However, I'm curious...why are so many in the Ruby community flocking
to git instead of mercurial? It seems that Python/C would be a more
appealing choice than Perl/C...and given that they're largely
feature-identical. I'd appreciate any additional insight you might
provide.

Thanks!
John

I find it funny that your only point of comparison between git and
Mercurial is the technology with which said tool is implemented. Last
time I checked, the *only* time developers care about how something is
implemented is if it's Windows only (.NET, MFC). If the tool works,
people will use it.

How about an actual comparison of git and Mercurial functionality wise?

Jason

···

On Tue, Mar 25, 2008 at 1:52 AM, John Wells <lists@sourceillustrated.com> wrote:

It seems like the hot new thing these days in Ruby-land is to host
your project in git. Cool....I'm very glad distributed vc is finally
getting the attention it deserves.

However, I'm curious...why are so many in the Ruby community flocking
to git instead of mercurial? It seems that Python/C would be a more
appealing choice than Perl/C...and given that they're largely
feature-identical. I'd appreciate any additional insight you might
provide.

Thanks!
John

Approximate composition of Git source files, lines of code:

86048 C (81%)
12959 Perl
6714 Shell

Approximate composition of Mercurial source files, lines of code:

36605 Python (94%)
2048 C

So it's not really "Perl/C" vs "Python/C"; it's more like C vs Python
(and as time goes by the proportion of C in Git is only getting
higher).

Cheers,
Wincent

···

On 25 mar, 06:52, John Wells <li...@sourceillustrated.com> wrote:

However, I'm curious...why are so many in the Ruby community flocking
to git instead of mercurial? It seems that Python/C would be a more
appealing choice than Perl/C...and given that they're largely
feature-identical. I'd appreciate any additional insight you might
provide.

John Wells wrote:

It seems like the hot new thing these days in Ruby-land is to host
your project in git.

How did you determine this?

···

--
James Britt

"Tear it up and start again."
  - Anonymous

It seems like the hot new thing these days in Ruby-land is to host
your project in git. Cool....I'm very glad distributed vc is finally
getting the attention it deserves.

However, I'm curious...why are so many in the Ruby community flocking
to git instead of mercurial?

For that matter, why not Darcs, which has been around a lot longer,
and is generally much simpler to use than Git? Or Bazaar, which tries
much harder than most DVCSes to handle merging of renames robustly?

I don't really get the popularity of Git. Most of the advocacy I've
seen it has really been advocacy for features that all DVCSes have,
which suggests to me that a lot of people are being introduced to DVCS
via Git. Or maybe it's just the "more is better" mindset:

  ls /opt/local/bin/git-* | wc -l
  >> 142

142 commands? It MUST be the best!

Personally I think that if you're Linus, Git is undoubtedly the best
tool for the job; but my own workflows don't really resemble Linus'
much. However, in an Open Source world any DVCS is better than no
DVCS, and I'm glad that Git is popularizing the concept.

···

On Tue, Mar 25, 2008 at 1:52 AM, John Wells <lists@sourceillustrated.com> wrote:

--
Avdi

I find it funny that your only point of comparison between git and
Mercurial is the technology with which said tool is implemented. Last
time I checked, the *only* time developers care about how something is
implemented is if it's Windows only (.NET, MFC). If the tool works,
people will use it.

Java.

···

On 25 Mar 2008, at 11:36, Jason Roelofs wrote:

How about an actual comparison of git and Mercurial functionality wise?

Jason

Well, I guess that was my point. From what I understand, git and
mercurial are essentially feature-identical. In fact, the developer of
mercurial spent some time working on git, wanted to change something
that Linus disagreed with, and decided to go off and rewrite git.

There are many, many articles out there comparing the two (google git
versus hg), and while there may subtle differences, the similarities
far outweigh these. In fact, one gent took a chapter out of the
mercurial book, replaced all references to the equivalent git
commands, and said everything else stood on its own.

git is used by the Linux kernel devs and others...mercurial is used on
the bigger Sun projects now (OpenJDK, OpenSolaris), by the Mozilla
foundation, by XenSource, and more.

So, after doing all this reading, it seemed to me that the only thing
left was to look at the underlying technology. And God help me, I'd
rather program in Python and C than Perl and C any day. I assume this
is true for a lot of Ruby developers...while Ruby has its roots in
Perl, it's kinda like being a clean cut metrosexual with embarrassing
redneck parents you still humor and honor, but try not to bring to
social gatherings...

To me, mercurial seems a more natural fit for Ruby software projects.

Thanks,
John

···

On Tue, Mar 25, 2008 at 7:36 AM, Jason Roelofs <jameskilton@gmail.com> wrote:

I find it funny that your only point of comparison between git and
Mercurial is the technology with which said tool is implemented. Last
time I checked, the *only* time developers care about how something is
implemented is if it's Windows only (.NET, MFC). If the tool works,
people will use it.

How about an actual comparison of git and Mercurial functionality wise?

Although I am a perfect fan and user of Mercurial I believe that this
discussion is at least OT if not futile.
If the Ruby team has chosen GIT they either had
(a) no knowledge of Mercurial and GIT just satisfied their needs
(b) known both and decided to use GIT for some (surely perfectly
reasonable, but not really interesting ) reason
and why should they care about the implementation language?
They might have chosen a different DistVCS if it were written in Ruby maybe :wink:

Honestly I do not see any connection to Ruby in this thread.

Cheers
Robert

···

On Tue, Mar 25, 2008 at 2:45 PM, Wincent Colaiuta <win@wincent.com> wrote:
--
http://ruby-smalltalk.blogspot.com/

---
Whereof one cannot speak, thereof one must be silent.
Ludwig Wittgenstein

Matt Todd wrote:

I really don't think the internal implementation has that much
influence over the popularity of the chosen SCMs. I think it has more
to do with the fact that Git is the fastest (but not by much) and has
a greater deal of general use compared to Mercurial. Also, Git is
fairly low level, and I think that a good deal of the Ruby developers
out there want to have this amount of control over their repos.

Interesting. I know a number of Ruby people using darcs or hg, but no one using git. I'm wondering if it's a Railsville thing, not a Rubyland thing

···

--
James Britt

"Tear it up and start again."
  - Anonymous

It's a general feel based on the following things I've noticed:

1. Go to github.com and look at the number of projects there that are
Ruby-based. It's definitely the majority.
2. Rubinius uses git.
3. Three times in the last two weeks, a project I wanted to use in my
own code included the telltale .git hidden dir.
4. The number of typically ruby-oriented blogs espousing the benefits
of git have increased recently.
5. Peepcode felt compelled to create a git screencast.

So, perhaps a bit unscientific, but I was still curious. There
certainly seems to be some buzz about git in the rails/ruby
communities.

···

On Tue, Mar 25, 2008 at 1:45 PM, James Britt <james.britt@gmail.com> wrote:

John Wells wrote:
> It seems like the hot new thing these days in Ruby-land is to host
> your project in git.

How did you determine this?

Personally I think that if you're Linus, Git is undoubtedly the best
tool for the job; but my own workflows don't really resemble Linus'
much. However, in an Open Source world any DVCS is better than no
DVCS, and I'm glad that Git is popularizing the concept.

Oh totally. I think too many people, way too often just seem to think that a new tool should just fit their workflow or preconceptions.

This is absolutely a bad way of going about life if you're switching tool. It's kinda like breaching rails conventions, you can do it, but it's probably going to hurt you, real bad.

Just the same way as patches should be supplied in the original authors coding style, and I will even go so far as to mostly use their own choice of VCS too, I personally believe that you shouldn't be unwilling to learn new styles. Moreover, like in a martial art, the more styles you can perform, the diversity tends to a higher capability and/or quality of practice.

My 'workflow' with git + hg are almost identical, however, so I don't really see anyones argument on these things. Maybe if you work on the linux source tree often, or you're unfortunate enough to be one of the few with an old svn repo that's over 8 gigs or so, then you'd want to choose one over the other, but seriously, most developers don't even know how to use svn yet, apart from checkout and commit. Hell I've seen a lot of people deploying with checkout, and committing by typing 'commit' every time (under svn).

As for workflows with things like git-svn, I don't know any *nix user in their right mind that wouldn't alias out stuff.

My workflow is like this:

(some_vcs) update / pull
(some_vcs) status
(some_vcs) branch / checkout
(some_vcs) add / remove
(some_vcs) commit
(some_vcs) distribute

And this only really gets shorter under CVS and SVN, so go figure.

···

On 25 Mar 2008, at 18:06, Avdi Grimm wrote:

--
Avdi

Avdi Grimm wrote:

I don't really get the popularity of Git. Most of the advocacy I've
seen it has really been advocacy for features that all DVCSes have,
which suggests to me that a lot of people are being introduced to DVCS
via Git. Or maybe it's just the "more is better" mindset:

  ls /opt/local/bin/git-* | wc -l
  >> 142

142 commands? It MUST be the best!

Personally I think that if you're Linus, Git is undoubtedly the best
tool for the job; but my own workflows don't really resemble Linus'
much.

There's a bit of history behind this. The Linux kernel repositories used to be in something called Bitkeeper. However, while Bitkeeper was free as in beer, it was not free as in speech. IIRC Git was created in some kind of code sprint to replace Bitkeeper specifically for the kernel source tree and Linus' (and other kernel hackers') workflows.

I'm guessing there's no such thing as a perfect version control system, where "perfect" is defined as:

1. Open source
2. Implemented in a compiled language (preferably C/C++ or Java) for speed
3. Integrated with pragmatic practices like test/behavior driven development, defect tracking/ticket tracking, continuous integration, etc.

The correct address is not hghub.com, but sharesource.org :slight_smile:
Subversion and mercurial support...

izidor

···

On 25.3.2008, at 9:07, Matt Todd wrote:

Plus, with GitHub.com now, it's hard to say no. Where's the hghub.com?

John Wells wrote:

And God help me, I'd
rather program in Python and C than Perl and C any day. I assume this
is true for a lot of Ruby developers...while Ruby has its roots in
Perl, it's kinda like being a clean cut metrosexual with embarrassing
redneck parents you still humor and honor, but try not to bring to
social gatherings...

Well ... I'd much rather program in Perl than Python. Why, you ask? Because I've been programming in Perl since about 1994 and I've never written even a single line of Python. I'm sure Python is a perfectly wonderful language, but the only thing that would "invite" me to learn it would be to get paid to write it.

Although I am a perfect fan and user of Mercurial I believe that this
discussion is at least OT if not futile.
If the Ruby team has chosen GIT they either had
(a) no knowledge of Mercurial and GIT just satisfied their needs
(b) known both and decided to use GIT for some (surely perfectly
reasonable, but not really interesting ) reason
and why should they care about the implementation language?
They might have chosen a different DistVCS if it were written in Ruby maybe :wink:

Is not Ruby team that choose Git over Hg over Any-Other-DVCS, but most
of the Ruby developers that works on projects (Web frameworks or
tools) decided for Git instead of anything else.

Honestly I do not see any connection to Ruby in this thread.

There is a connection anyway. The option for a VCS/DVCS make difficult
for users contribute back with patches to fix issues.

I know there are a few porjects that still uses CVS (win32utils).

I can't say the choose for Git is alienating the contribution, but I
can say is performing a sort of discrimination and exclusion for those
users that can't integrate Git properly under their platforms or faces
restrictions regarding the tools that can install under their
environments.

Regards,

···

On 25 mar, 11:15, Robert Dober <robert.do...@gmail.com> wrote:

On Tue, Mar 25, 2008 at 2:45 PM, Wincent Colaiuta <w...@wincent.com> wrote:

--
Luis Lavena

If the Ruby team has chosen GIT they either had

Ruby itself is developed using svn.

Honestly I do not see any connection to Ruby in this thread.

A lot of Ruby developers these days are moving to git. I think it's
perfectly valid to ask why rather than to blindly follow along.

I wonder how long it will be before we see git support on rubyforge.

Paul

···

On Tue, Mar 25, 2008 at 11:15:28PM +0900, Robert Dober wrote:

Probably the best-known Ruby project using git is Rubinius.

Paul

···

On Wed, Mar 26, 2008 at 02:47:06AM +0900, James Britt wrote:

Interesting. I know a number of Ruby people using darcs or hg, but no
one using git. I'm wondering if it's a Railsville thing, not a Rubyland
thing

It affects other communities :

Steve Dekorte (Io) : "I've moved the official repo to github:
git clone git://github.com/stevedekorte/io.git
Please update your repos and let me know if this works ok."

   -- Jean-François.

···

2008/3/25, John Wells <lists@sourceillustrated.com>:

So, perhaps a bit unscientific, but I was still curious. There
certainly seems to be some buzz about git in the rails/ruby
communities.

Hi,

···

In message "Re: Why git instead of mercurial?" on Wed, 26 Mar 2008 02:47:06 +0900, James Britt <james.britt@gmail.com> writes:

Interesting. I know a number of Ruby people using darcs or hg, but no
one using git. I'm wondering if it's a Railsville thing, not a Rubyland
thing

I personally use git (actually stgit) on my machine, then push/pull
changes to the central subversion repository.

              matz.