[haiku-development] Re: Git/Hg: some speed tests

  • From: "Ingo Weinhold" <ingo_weinhold@xxxxxx>
  • To: haiku-development@xxxxxxxxxxxxx
  • Date: Wed, 04 May 2011 17:35:01 +0200

On Wed, 04 May 2011 16:48:29 +0200 "Axel Dörfler" <axeld@xxxxxxxxxxxxxxxx> 
> Niels Sascha Reedijk <niels.reedijk@xxxxxxxxx> wrote:
> > === Checkout on Haiku ===
> Thanks for all the tests! Judging from the syntax alone I would prefer 
> hg :-)

I wonder what you're seeing. At least in those examples the syntax is almost 
the same save for the hashes, instead of which we'd use the revision tags 

Apropos revision tags: AFAIK the revision numbers hg assigns are repository 
specific which I find rather unhelpful. Does hg support something like git's 
lightweight tags that could be created automatically on the server?

> Does all those commands work on Haiku as well?

I was also wondering where the benchmarks (other than the checkouts) have been 
performed. Furthermore I was wondering in which caching situation the tests 
have been performed. E.g. for a "status" (on my quad core desktop, OpenSuse 
11.2, ReiserFS 3.6, hg 1.8.3, git 1.7.5) I get very different results for a 
cold first and a hot second run:

         first    second
git  0m14.718s  0m0.189s
hg   0m13.172s  0m0.347s

> I don't find the complete checkout times that important, how does 
> rebasing the local repository to a more recent revision look like?
> How fast is switching between branches?
> How fast is creating a new branch?
> How fast is merging a branch?

At least creating a branch should be almost a no-op in either case. As for the 
other operations I guess that depends on the number and size of the changes.

> And finally, does hg support updating the local repository without 
> (temporarily) throw away my local changes?
> As far as I understand, that takes 3-4 commands with git which I find 
> very annoying (git stash, git rebase, git stash apply[, git stash 
> clear]) -- or is that only relevant when working with SVN as a source 
> repository?

You might want to rethink your workflow. Before even starting to work on 
something a local branch should be created. And before playing with remote 
repositories local changes should be committed anyway. Uncommitted local 
changes are so svn. :-)

CU, Ingo

Other related posts: