Hello,

I've set up a Git mirror of the entire GCC history on
server space kindly provided by David Woodhouse.

You can clone it with:

git-clone git://git.infradead.org/gcc.git

The entire repo packs to 877MB.  If you can't afford that
much disk space, I suggest you get a shallow copy instead:

git-clone --depth 100

This is just 43MB, very affordable if you consider
that the total size of the .svn dirs is 610MB!

One nice thing about the git GCC repo is its blazing
speed with common operations:

- grep through all the history in less than 5 seconds:

  [EMAIL PROTECTED]:~/src/gcc/gcc-git$ time git-log | grep ^commit | wc -l
  81193

  real    0m4.232s
  user    0m4.158s
  sys     0m0.381s

- nop remote pull in 0.5 sec:

[EMAIL PROTECTED]:~/src/gcc/gcc-git$ time git-pull Already up-to-date.

  real    0m0.548s
  user    0m0.265s
  sys     0m0.265s

- full tree diff in 0.5 sec:

  [EMAIL PROTECTED]:~/src/gcc/gcc-git$ time git-diff >/dev/null
  real    0m0.490s
  user    0m0.094s
  sys     0m0.397s

The only perfomance issue is with git-blame, which is git's
Achilles heel.  But you'll excuse it as soon as you see
that it walks not just through renames, but even through
cut&pasted snippets from one file to another!

The mirror is read-only and updated hourly.  On request, I
could increase the frequency of the updates as it doesn't
eat that much bandwidth anyway.

I have just cloned the trunk because that's what I needed
for own usage.  I can add all branches if somebody needs
them.  Shouldn't make the repository much bigger and one
doesn't need to pull them by default anyway.

--
  // Bernardo Innocenti
\X/  http://www.codewiz.org/

Reply via email to