Hi! Don't be afraid, just a few numbers. :) 1. Updating/Getting the source: svn update from revision 44014 to revision 44570 with svn update: real 0m11.464s user 0m1.180s sys 0m0.576s svn checkout with svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm: real 4m37.414s user 0m5.756s sys 0m2.592s git clone the whole tree with git clone http://repo.or.cz/r/llvm.git: real 0m37.250s user 0m15.097s sys 0m0.500s svn checkout clang with svn co http://llvm.org/svn/llvm-project/cfe/trunk clang: real 1m34.013s user 0m0.688s sys 0m0.348s git clone the whole clang tree with git clone http://repo.or.cz/r/clang.git: real 0m12.698s user 0m4.832s sys 0m0.104s 2. Repository size: svn tree: 98 MB git tree: 47 MB Bare git repo: < 10 MB I just got those numbers because I tried to get LLVM's complete history with git-svn http://llvm.org/svn/llvm-project/llvm/trunk llvm, which would last approximately 5 hours (I canceled it after a few minutes). Then I found http://repo.or.cz/ with llvm and clang git trees. So, to summarize: Git clone is seven times faster than svn checkout for the llvm and clang repositories. Git repo size is half of svn repo size. But it seems that there is no full history at repo.or.cz. Peter
> So, to summarize: > Git clone is seven times faster than svn checkout for > the llvm and clang repositories. > Git repo size is half of svn repo size.Yeah, git is incredibly fast, even for huge project (like the linux kernel). For the way LLVM works, I can only see one drawback: it works always atomically with a whole tree. An example: if you have one git repository with directories a/ b/ c/ each with 2500 files, then git can only clone/pull/checkout/push/whatever ALL three directory with all 7500 files. With svn, you can opt to just get a/, when you aren't interested in b/ and c/. Today I stumbed over this blog: http://blog.cryos.net/archives/167-Git,-SVN-and-Development.html Here the author describes how he uses git to checkout an svn repository, work then in git (making lots of little commits there) and then use "git svn dcommit" to commit (from git!) back into the svn repository.
Hi!> For the way LLVM works, I can only see one drawback: it works > always atomically with a whole tree. An example: if you have one > git repository with directories a/ b/ c/ each with 2500 files, > then git can only clone/pull/checkout/push/whatever ALL three > directory with all 7500 files. With svn, you can opt to just get > a/, when you aren't interested in b/ and c/.There is something new in 1.5.3: http://www.kernel.org/pub/software/scm/git/docs/git-submodule.html peter