(Fwiw, we converted to Subversion on April 26th, 2010.
Uh, 2006, not 2010.
–ryan.
(Fwiw, we converted to Subversion on April 26th, 2010.
Uh, 2006, not 2010.
–ryan.
Hello,
Without wanting to call a flame war, I’m curious as to why you’ve chosen
Mercurial over other decentralized version control systems like say GIT
or Bazaar.(Really, this is the question I expected, not “why move from Subversion?”)
That surprised me a lot too :).
These are my primary reasons for choosing Hg over Git:
- Mercurial works better on Windows at the moment. Git used to need
Cygwin, and the msysgit project doesn’t seem that active. Also, I’ve
seen a few too many comments from the Git developers that suggest they
aren’t at all concerned about being hostile to users on Mac OS X and
Windows. As git’s original purpose is to help the Linux kernel
developers, I guess that’s not surprising, and if SDL wasn’t so
concerned with portability, it wouldn’t be a big deal. Fwiw, git seems
to be largely interested in Unix, but Mercurial does need Python to
run, so we’re probably going to have problems with obscure systems that
worked with Subversion. But the ones we really care about: Windows,
Linux, and Mac OS X? Mercurial is sweet.
Yeah, Mercurial probably wins there. I’ve got some of my users running
git on windows and mac os x, but I do believe it is harder especially if
you want to avoid msys and friends on windows.
- I personally find Mercurial to be a little easier to use. I think it’s
a little more welcoming to people migrating from Subversion, too. I
think that git’s index is a little scary to new users (indeed, Mercurial
Queues are probably moreso, but they’re optional).
Probably true there also.
Going to throw my 2 cents although it’s probably a bit superfluous. I
used to use SVN, then did the switch ~4 years back to HG. About 2 years
ago did the jump to GIT. From what I’ve seen, Mercurial is a bit more
newbie-friendly then GIT. However GIT is much faster and from what
I’ve experienced seems to handle merges much better. I’m probably too
used to it now, but I’ve never really had an issue with branches and
tags with GIT, however I remember having a hard time with named branches
in HG. However that was a while ago and it’s probably better.
As you mentioned, they are both functionally identical (decentralized
version control) and a MAJOR jump over CVS/SVN imho. IMHO the
difference between HG/GIT mainly boils down to what you’re used to and
maybe in some niche areas one will be better then the other.
EdgarOn 2010?02?27? 21:47, Ryan C. Gordon wrote:
why not eh? seems a new versioning system appears every year or so, keeps
you on your toes etc, really who gives a crap, oh! everyone who replied
negativley to ryans post
ok i’ll stop reading sdl list and posting irrelevant crap now.
I think this is great. If for no other reason, it will give me a
concrete excuse to mess around with a distributed versioning system,
which is something I’ve been wanting to do for a while.
Wow, this is freaking fast!
hg clone http://hg.libsdl.org/SDL
… yup, it’s SDL 1.3!
hg clone SDL SDL-1.2
cd SDL-1.2
hg update SDL-1.2
… yup, it’s SDL 1.2!
time on my machine:
real 0m22.740s
user 0m8.376s
sys 0m1.942s
Woo!
Wow, this is freaking fast!
hg clone http://hg.libsdl.org/SDL
… yup, it’s SDL 1.3!
hg clone SDL SDL-1.2
cd SDL-1.2
hg update SDL-1.2
… yup, it’s SDL 1.2!time on my machine:
real 0m22.740s
user 0m8.376s
sys 0m1.942sWoo!
woooooooooooooooooooooooooo
we are so easilly pleased if only ordering a pizza was this fastOn 28 February 2010 08:40, Sam Lantinga wrote:
I couldn’t find any recent benchmarks for hg and git, so here’s one. I
cloned the SDL hg repo, and converted it to git using
http://hg-git.github.com/ . Unfortunately this only cloned the default
branch, so I cloned a new hg repo with just the default branch for a
fair comparison. Each repo has 3229 commits, and all tests are
cache-hot.
version
$ hg version
Mercurial Distributed SCM (version 1.4.1)
$ git version
git version 1.6.4.4
Statusing -
hg$ time hg status
real 0m0.343s
user 0m0.304s
sys 0m0.039s
git$ time git status
nothing to commit (working directory clean)
real 0m0.039s
user 0m0.015s
sys 0m0.016s
real 0m2.300s
user 0m2.270s
sys 0m0.040s
git$ time git log | grep ^commit | wc -l
3229
real 0m0.366s
user 0m0.324s
sys 0m0.042s
Wow, this is freaking fast!
hg clone http://hg.libsdl.org/SDL
… yup, it’s SDL 1.3!
hg clone SDL SDL-1.2
cd SDL-1.2
hg update SDL-1.2
… yup, it’s SDL 1.2!time on my machine:
real 0m22.740s
user 0m8.376s
sys 0m1.942sWoo!
hg$ time hg clone -q newSDL newSDL2
real 0m4.134s
user 0m3.616s
sys 0m0.511s
git$ time git clone gitSDL gitSDL2
Initialized empty Git repository in /home/mjs/sdltmp/gitcheckout/gitSDL2/.git/
real 0m0.717s
user 0m0.407s
sys 0m0.173s
Results:
hg real / git real = 8.79, 6.28, 5.76 slower
Note it’s entirely possible I’ve messed something up to make these
results invalid, so if anyone else tries a test and comes up with
different results let me know!
Anyway I can’t speak to the non-quantifiable aspects of the two - I
just thought a side-by-side comparison would be interesting
-Mike