[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> 
wrote:
> 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 
anyway.

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: