[Lazarus] SubVersion vs Git
graemeg.lists at gmail.com
Wed Nov 5 12:17:21 CET 2008
On 11/5/08, Florian Klaempfl <florian at freepascal.org> wrote:
> Git is a hype. Git might be nice for projects with >100 developers and
> which has (like linux) dedicated branch maintainers. Git allows to
> support complicated project structures with several layers of
> maintainers and project managers. But this is something smaller projects
> like FPC or Lazarus don't need.
That's like saying.... I'm a single developer, I don't need a Source
Code Version tool.
> > * Git repositories are MUCH smaller.
> Who did tell you this? Linus? Does he have the history of the Linux code
> since version 0.1 in his repository?
No Linus didn't tell me anything... ;-) I simply read what many people
have said. And to prove the point, I did my own tests as shown below.
As for the full history of Linux kernel.... Yes that IS available. :-)
You have a few choices:
"If anyone is interested, I have put on my website a git repository
containing the full history of Linux, from 0.01 to now.
It's built from 3 other git repositories:
- the one from Dave Jones from 0.01 to 2.4.0,
- the one from tglx from 2.4.0 to 2.6.12,
- the one from Linus Torvalds from 2.6.12 to now."
Just go to: http://lwn.net/Articles/285366/
> I doubt that a repository containing the full lazarus history is smaller
> than a repository containing each file twice.
OK, lets see... Lazarus HEAD revision only, using 'svn update'. I did
a 'make clean', removed all *.ppu, *.o, *.compiled and all
executables. 'make clean' did not catch all files or folders by the
way, so I had to remove them manually.
HEAD exported (no .svn folders) = 76MB (1 revision of source code only)
HEAD checkout (with .svn folders) = 314MB (that means 1 revision only)
So far that means SubVersion added 238MB of noise simply to manage ONE
(head) revision!!! I guess there is a lot of crap in those .svn
So, I then asked Git to get me the HEAD revision only for Lazarus
trunk. Again, that's only 1 revision, and Git will maintain the
history from there onwards. I just completed the "checkout" of HEAD.
HEAD checkout using Git = 108MB (that means 1 revision only)
So Git is already 206MB smaller than SubVersion using the HEAD
revision only. Wow, that's quite a saving of space!
I'm busy fetching the FULL Lazarus trunk history for Git. That's
around 8 years 3 months of information which equates to 17235
revisions in total. Currently I'm at around r3300 so have a while to
go <smile>, but it's going pretty quick(ish). I'll report back later
today on the full history size of Lazarus in Git. BTW: I'm not going
to bother getting every revision for SubVersion, that's going to take
forever and by the looks of it, fill my hard drive in no time.
- Graeme -
fpGUI - a cross-platform Free Pascal GUI toolkit
More information about the Lazarus