[Lazarus] SubVersion vs Git

Florian Klaempfl florian at freepascal.org
Wed Nov 5 09:02:29 CET 2008

Graeme Geldenhuys schrieb:
> Hi,
> Seeing that Lazarus and FPC are reasonable sized projects and have
> been using SubVersion for some time, there should be a few SubVersion
> experts around.
> Have any of you weighed up the pros and cons between SubVersion and
> Git? Has FPC or Lazarus team ever considered moving to Git? 

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.

> I'm busy
> downloading a 1 hour YouTube video demoing Git
> [http://www.youtube.com/watch?v=8dhZ9BXQgc4], so maybe afterwards I
> will have a better understand of Git.
> But from what I had read so far, Git seems superior in a few areas...
> I will list what I know below... What are your thoughts?
> * Git makes branching and merging really simple.

This is a simplified view. Git doesn't solve either the real problems of
merging: testing of the merged code and solving textuel conflicts.

> * 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?

> SubVersion has duplicates of each
> file which actually more than doubles the size of a repository.
> * Git is local, so checking history or doing commits are really fast.

I doubt that a repository containing the full lazarus history is smaller
than a repository containing each file twice.

> * You have lots of backups of Git repositories because they are local
> to each developer. In SubVersion, if the repository server is down,
> everybody is stuck.

Only with committing. With a DVCS you're also stuck if the repository
for the "official" code is dead. Great that you can "commit" to your
local repository but nobody will see it so what's the point about it?

> * Moving a SubVersion repository to Git is well supported. History stays intact.
> What I'm not 100% sure about is:
> *  How well is Git supported on other platforms than Linux?

Near to unusable, mercurial is much better in this regard but I still
don't see any advantage for lazarus or fpc in using a dvcs. I run a read
 only mirror mercurial of the lazarus
(http://florianklaempfl.de:8000/lazarustrunk) and fpc repository
(http://florianklaempfl.de:8000/fpctrunk) for those interested in
playing around with it.

> * Does Git handle eol-style like SubVersion, or does it have an
> equivalent feature?

It is a linux project, what do you expect ;)? It has some strange
automatic handling which probably works as well as that one of cvs.

More information about the Lazarus mailing list