Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus / 2008-11

SubVersion vs Git

45 messages · 8 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Graeme Geldenhuys

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

* Git repositories are MUCH smaller. 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.

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

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

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

Regards,
- Graeme -

_______________________________________________
fpGUI - a cross-platform Free Pascal GUI toolkit
http://opensoft.homeip.net/fpgui/

Reply by email

Raistware
to Graeme Geldenhuys: Seeing that Lazarus and FPC are reasonable sized projects and have been using SubVersion…

Graeme Geldenhuys escribi?:

Show quoted text 51 lines
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? 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. * Git repositories are MUCH smaller. 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. * 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. * 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? * Does Git handle eol-style like SubVersion, or does it have an equivalent feature? Regards, - Graeme - _______________________________________________ fpGUI - a cross-platform Free Pascal GUI toolkit http://opensoft.homeip.net/fpgui/ _______________________________________________ Lazarus mailing list http://www.lazarus.freepascal.org/mailman/listinfo/lazarus

IMHO Git support under Windows is very poor. Only works cygwin version, at least this summer, and not allways works all functionalities. I have lots of problems to get last version of a remote repository, and finally created a virtual machine with debian only to download the git repository. So please, don't even consider moving to git until it doesn't work properly under all widelyused operating system.

Thanks.

Reply by email

Graeme Geldenhuys
to Graeme Geldenhuys: Seeing that Lazarus and FPC are reasonable sized projects and have been using SubVersion…
Graeme Geldenhuys wrote
* Git repositories are MUCH smaller. SubVersion has duplicates of each file which actually more than doubles the size of a repository.

This is impressive. Mozilla has 10 years of history in their SubVersion repository totalling 12Gig of information. SubVersion also requires over 240,000 files in a single directory to handle the +240,000 commits. Converting that repository with full history to Git used only 420MB. See the URL below for details - "Small Space Requirements" section.

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

Regarding this question. Git does handle eol characters if required. See the "Line Ending Conversion" section.
http://git.or.cz/gitwiki/GitSvnComparsion

Regards,
- Graeme -

_______________________________________________
fpGUI - a cross-platform Free Pascal GUI toolkit
http://opensoft.homeip.net/fpgui/

Reply by email

Florian Klaempfl
to Graeme Geldenhuys: Seeing that Lazarus and FPC are reasonable sized projects and have been using SubVersion…
Show quoted text 8 lines
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.

Show quoted text 9 lines
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?

Show quoted text 8 lines
* 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.

Reply by email

Florian Klaempfl
to Graeme Geldenhuys: This is impressive. Mozilla has 10 years of history in their SubVersion repository…
Show quoted text 8 lines
On 11/5/08, Graeme Geldenhuys wrote: > * Git repositories are MUCH smaller. SubVersion has duplicates of each > file which actually more than doubles the size of a repository. This is impressive. Mozilla has 10 years of history in their SubVersion repository totalling 12Gig of information. SubVersion also requires over 240,000 files in a single directory to handle the +240,000 commits.

And who cares? This is on one *server*.

Converting that repository with full history to Git used only 420MB. See the URL below for details - "Small Space Requirements" section.

Great, every client gets 420 MB of junk almost never needed.

Reply by email

Florian Klaempfl
to Graeme Geldenhuys: I forgot to mention.... Here is a nice article on someone that moved from SubVersion to…
I forgot to mention.... Here is a nice article on someone that moved from SubVersion to Git. http://www.aidanf.net/node/120

The development modell of git doubles testing efforts with little gain: first, I've to test before I commit to my local repository. Then I've to test after pushing all stuff to the central reposiroty. This article is close to useless because it seems to consider only one developer.

Reply by email

Alexander Klenin
to Florian Klaempfl: Git is a hype. Git might be nice for projects with >100 developers and which has (like…
Florian Klaempfl wrote 5 lines
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 disagree. I, for example, have moved all my Unix-based projects to Git, even personal ones, and it is much better to work with even in a single-developer case.
In particular, ability to create commits off-line is very valuable to me. The only problem of Git is poor Windows support, and as unfortunately some of my projects are Windows-specific, I still prefer to use SVN for those.

Windows compatibility is also the reason I would not recommend to move Lazarus/FPC from Subversion (yet).

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

Since Git is distributed, the notion of "his" repository is rather vague, but such a repository definitely exists:
http://git.kernel.org/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=summary

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

They are usually of about equal size, for example, svn checkout of Pidgin (IM tool) is 122 MB while complete history in Git repository is 148 MB. But the OP's point was that local operations are MUCH faster, so much that it changes the work flow. For example, to show a few last log messages
from the lazarus repository takes me 10-20 sec., and showing a diff between to revisions of a file -- another 30-60 sec., while in Git these operations are instantaneous.

Show quoted text 7 lines
> * 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?

With SVN if the central repository is dead, then
the whole history of the project vanishes with no chance of restoration. Of course, the central repository should be backed up, but still if the failure occurs, it is catastrophic.
On the contrary, with DVCS (not only Git) such a failure is just a minor inconvenience,
since each developer has a local copy of the history, and can easily publish it.

Another compelling feature of Git is the possibility to create and manage local branches. For example, when I want to add a feature to Lazarus, I would like to present it as a series of clean patches for easier review and better log history. However, I can not do this with Subversion in a practical way,
so I have to submit first patch of the series, wait for it to get accepted, submit the second one etc.
This wastes both my and reviewer's time so much that it can take months instead of weeks to complete a moderately complex feature. Actually, I due to this obstacle have given up trying to develop more complex features for Lazarus and just submit small patches for trivial things ;-)

> * How well is Git supported on other platforms than Linux? Near to unusable, mercurial is much better in this regard

That I agree with. Perhaps it is time for me to try Mercurial.

Alexander S. Klenin Insight Experts Ltd.

Reply by email

Reenen Laurie
to Alexander Klenin

Git has - like several other linux applications - a crappy name. I dunno if it is a dirty word, but it sounds like one.

I do not want a whole history of edits if I only want to check-out (svn terminology) the latest version.

Alexander Klenin wrote 86 lines
On Wed, Nov 5, 2008 at 18:02, Florian Klaempfl 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. I disagree. I, for example, have moved all my Unix-based projects to Git, even personal ones, and it is much better to work with even in a single-developer case. In particular, ability to create commits off-line is very valuable to me. The only problem of Git is poor Windows support, and as unfortunately some of my projects are Windows-specific, I still prefer to use SVN for those. Windows compatibility is also the reason I would not recommend to move Lazarus/FPC from Subversion (yet). >> * 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? Since Git is distributed, the notion of "his" repository is rather vague, but such a repository definitely exists: http://git.kernel.org/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=summary >> * 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. They are usually of about equal size, for example, svn checkout of Pidgin (IM tool) is 122 MB while complete history in Git repository is 148 MB. But the OP's point was that local operations are MUCH faster, so much that it changes the work flow. For example, to show a few last log messages from the lazarus repository takes me 10-20 sec., and showing a diff between to revisions of a file -- another 30-60 sec., while in Git these operations are instantaneous. >> * 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? With SVN if the central repository is dead, then the whole history of the project vanishes with no chance of restoration. Of course, the central repository should be backed up, but still if the failure occurs, it is catastrophic. On the contrary, with DVCS (not only Git) such a failure is just a minor inconvenience, since each developer has a local copy of the history, and can easily publish it. Another compelling feature of Git is the possibility to create and manage local branches. For example, when I want to add a feature to Lazarus, I would like to present it as a series of clean patches for easier review and better log history. However, I can not do this with Subversion in a practical way, so I have to submit first patch of the series, wait for it to get accepted, submit the second one etc. This wastes both my and reviewer's time so much that it can take months instead of weeks to complete a moderately complex feature. Actually, I due to this obstacle have given up trying to develop more complex features for Lazarus and just submit small patches for trivial things ;-) >> * How well is Git supported on other platforms than Linux? > > Near to unusable, mercurial is much better in this regard That I agree with. Perhaps it is time for me to try Mercurial. -- Alexander S. Klenin Insight Experts Ltd. _______________________________________________ Lazarus mailing list http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
o__ ,_.>/ _ (_)_\(_)_______ ...speed is good _______________ I believe five out of four people have a problem with fractions. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://www.lazarus.freepascal.org/pipermail/lazarus/attachments/20081105/e85c7e83/attachment.html

Reply by email

Florian Klaempfl
to Alexander Klenin: I disagree. I, for example, have moved all my Unix-based projects to Git, even personal…
Show quoted text 11 lines
On Wed, Nov 5, 2008 at 18:02, Florian Klaempfl 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. I disagree. I, for example, have moved all my Unix-based projects to Git, even personal ones, and it is much better to work with even in a single-developer case. In particular, ability to create commits off-line is very valuable to me.

But what does it help? Nobody sees such a off-line commit. If I work on different things on subversion, I just copy the repository.

Show quoted text 7 lines
>> * 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? Since Git is distributed, the notion of "his" repository is rather vague, but such a repository definitely exists: http://git.kernel.org/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=summary

last change Mon, 4 Apr 2005 16:08:33 +0000

It does not contain all changes made ever to linux as e.g. the lazarus svn does: the lazarus svn contains _all_ changes made ever to lazarus.

Show quoted text 11 lines
>> * 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. They are usually of about equal size, for example, svn checkout of Pidgin (IM tool) is 122 MB while complete history in Git repository is 148 MB. But the OP's point was that local operations are MUCH faster, so much that it changes the work flow. For example, to show a few last log messages from the lazarus repository takes me 10-20 sec.,

With TortoiseSVN's cache it's also instantenous for me :)

and showing a diff between to revisions of a file -- another 30-60 sec., while in Git these operations are instantaneous.

This is indeed a imo small disadvantage of svn but it doesn't compensate the huge bureacracy required for a dvcs.

Show quoted text 11 lines
>> * 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? With SVN if the central repository is dead, then the whole history of the project vanishes with no chance of restoration. Of course, the central repository should be backed up, but still if the failure occurs, it is catastrophic.

You need this with git too because nobody ensures that anybody has really such a copy.

On the contrary, with DVCS (not only Git) such a failure is just a minor inconvenience, since each developer has a local copy of the history, and can easily publish it.

It could be that someone has :) Further, it requires that someone publishes this address and it gets spread. Such thing sounds nice but in reality I see no value in it.

Show quoted text 13 lines
Another compelling feature of Git is the possibility to create and manage local branches. For example, when I want to add a feature to Lazarus, I would like to present it as a series of clean patches for easier review and better log history. However, I can not do this with Subversion in a practical way, so I have to submit first patch of the series, wait for it to get accepted, submit the second one etc. This wastes both my and reviewer's time so much that it can take months instead of weeks to complete a moderately complex feature. Actually, I due to this obstacle have given up trying to develop more complex features for Lazarus and just submit small patches for trivial things ;-)

For this use case we've the mercurial mirror. However, as far as I can see, nobody uses it for real work. Probably because of the higher learning curve of a dvcs.

But at least speaking for FPC: anybody interested in FPC development can get write access to own svn branchs where he can do his development on FPC. Using svnmerge, merging of such branches is very easy. This has also the advantage that changes don't get lost in somebody's local repository either because it might not be backed up as the central svn or because the submitter forgets about his work. I even consider such a solution better than a dvcs: the danger of changes being lost is really low. Of course, this can be done only for smaller projects, but I still consider FPC/Lazarus small in this regard.

Reply by email

Florian Klaempfl
to Florian Klaempfl
Show quoted text 7 lines
But at least speaking for FPC: anybody interested in FPC development can get write access to own svn branchs where he can do his development on FPC. Using svnmerge, merging of such branches is very easy. This has also the advantage that changes don't get lost in somebody's local repository either because it might not be backed up as the central svn or because the submitter forgets about his work. I even consider such a solution better than a dvcs:

Forgot to mention: this allows also an earlier review of patches with little effort.

Reply by email

Graeme Geldenhuys
to Reenen Laurie: Git has - like several other linux applications - a crappy name. I dunno if it is a…
Reenen Laurie wrote
Git has - like several other linux applications - a crappy name. I dunno if it is a dirty word, but it sounds like one.

:-)

I do not want a whole history of edits if I only want to check-out (svn terminology) the latest version.

Git does allow a "svn check-out" without the full history. Subsequent updates will then build the history from there...

Alternatively, you can download a tarball of the repository with full history. Unpack on your side and start getting updates from there..

Regards,
- Graeme -

_______________________________________________
fpGUI - a cross-platform Free Pascal GUI toolkit
http://opensoft.homeip.net/fpgui/

Reply by email

Graeme Geldenhuys
to Alexander Klenin: I disagree. I, for example, have moved all my Unix-based projects to Git, even personal…
Alexander Klenin wrote
They are usually of about equal size, for example, svn checkout of Pidgin (IM tool) is 122 MB while complete history in Git repository is 148 MB.

I don't think that is incorrect. The svn checkout will only contain the last revision (no history). That means 122MB for the HEAD revision. Compare that to the Git repository of148MB for the full history! A huge difference in amount of information and size. Git is a LOT smaller.

Show quoted text 6 lines
But the OP's point was that local operations are MUCH faster, so much that it changes the work flow. For example, to show a few last log messages from the lazarus repository takes me 10-20 sec., and showing a diff between to revisions of a file -- another 30-60 sec., while in Git these operations are instantaneous.

This drives me absolutely nuts!! I often track bugs by comparing revisions. And doing that for remote repositories like FPC or Lazarus is a total pain in the butt! It takes forever! We don't all live in the USA with 20+Mb internet connections to our office or home.

Another compelling feature of Git is the possibility to create and manage local branches. For example, when I want to add a feature to Lazarus,

This is one of the major features in Git that is convincing me to try Git for our company repositories. In SubVersion, branching is like an afterthought. Manually having to track merges to a branch (though apparently there was been some work towards this), etc...

Regards,
- Graeme -

_______________________________________________
fpGUI - a cross-platform Free Pascal GUI toolkit
http://opensoft.homeip.net/fpgui/

Reply by email

Graeme Geldenhuys
to Florian Klaempfl: And who cares? This is on one *server*. Great, every client gets 420 MB of junk almost…
Florian Klaempfl wrote 6 lines
> This is impressive. Mozilla has 10 years of history in their > SubVersion repository totalling 12Gig of information. SubVersion also > requires over 240,000 files in a single directory to handle the > +240,000 commits. And who cares? This is on one *server*.

Not all filesystems like +240,000 files in a single directory.

Show quoted text 5 lines
> Converting that repository with full history to Git > used only 420MB. See the URL below for details - "Small Space > Requirements" section. Great, every client gets 420 MB of junk almost never needed.

You don't have to get a full history on "check-out".

Regards,
- Graeme -

_______________________________________________
fpGUI - a cross-platform Free Pascal GUI toolkit
http://opensoft.homeip.net/fpgui/

Reply by email

Florian Klaempfl
to Graeme Geldenhuys: I don't think that is incorrect. The svn checkout will only contain the last revision (no…
Show quoted text 9 lines
On 11/5/08, Alexander Klenin wrote: > They are usually of about equal size, for example, svn checkout of > Pidgin (IM tool) is 122 MB while complete history in Git repository is 148 MB. I don't think that is incorrect. The svn checkout will only contain the last revision (no history). That means 122MB for the HEAD revision. Compare that to the Git repository of148MB for the full history! A huge difference in amount of information and size. Git is a LOT smaller.

122 MB is still less than 148 MB. But anyways, the git/dvcs hypers always forget about the drawbacks: e.g. git or mercurial don't allow partial checkouts: every checkout contains the full source tree. I do often partial checkouts, e.g. I've several checkouts only of the compiler dir.

Show quoted text 12 lines
> But the OP's point was that local operations are MUCH faster, > so much that it changes the work flow. For example, to show a few last > log messages > from the lazarus repository takes me 10-20 sec., and showing a diff between > to revisions of a file -- another 30-60 sec., while in Git these > operations are instantaneous. This drives me absolutely nuts!! I often track bugs by comparing revisions. And doing that for remote repositories like FPC or Lazarus is a total pain in the butt! It takes forever! We don't all live in the USA with 20+Mb internet connections to our office or home.

Use the mercurial mirror to do so. However, as I said, since it seems that nobody uses it, I consider it not as a real issue or even pain.

Show quoted text 10 lines
> Another compelling feature of Git is the possibility to create and manage > local branches. For example, when I want to add a feature to Lazarus, This is one of the major features in Git that is convincing me to try Git for our company repositories. In SubVersion, branching is like an afterthought. Manually having to track merges to a branch (though apparently there was been some work towards this), etc...

This is not true. svnmerge works very well for years for FPC.

Reply by email

Florian Klaempfl
to Graeme Geldenhuys: Not all filesystems like +240,000 files in a single directory. You don't have to get a…
Show quoted text 9 lines
On 11/5/08, Florian Klaempfl wrote: > > This is impressive. Mozilla has 10 years of history in their > > SubVersion repository totalling 12Gig of information. SubVersion also > > requires over 240,000 files in a single directory to handle the > > +240,000 commits. > > And who cares? This is on one *server*. Not all filesystems like +240,000 files in a single directory.

First, the 240000 files in one dir are history since svn 1.6 and if it was a real issue, one could still use the bdb back end. Second, if you run such a server, you should think about the FS and use something like xfs, jfs or reiserfs. Their overall performance on servers is usually better anyways.

Show quoted text 8 lines
> > Converting that repository with full history to Git > > used only 420MB. See the URL below for details - "Small Space > > Requirements" section. > > Great, every client gets 420 MB of junk almost never needed. You don't have to get a full history on "check-out".

And what's the advantage of git then ;)?

Reply by email

Graeme Geldenhuys
to Reenen Laurie: Git has - like several other linux applications - a crappy name. I dunno if it is a…
Reenen Laurie wrote
Git has - like several other linux applications - a crappy name. I dunno if it is a dirty word, but it sounds like one.

The text below is quoted from: http://git.or.cz/gitwiki/GitFaq -----------------------------
Why the 'git' name?

Quoting Linus: "I'm an egotistical ***, and I name all my projects after myself. First 'Linux', now 'git'".

('git' is British slang for "silly, stupid, or worthless person").

Alternatively, in Linus' own words as the inventor of git: "git" can mean anything, depending on your mood:

* Random three-letter combination that is pronounceable, and not actually used by any common UNIX command. The fact that it is a mispronunciation of "get" may or may not be relevant.
* Stupid. Contemptible and despicable. Simple. Take your pick from the dictionary of slang.
* "Global information tracker": you're in a good mood, and it actually works for you. Angels sing, and a light suddenly fills the room.
* "Goddamn idiotic truckload of sh*t": when it breaks

-----------------------------

Regards,
- Graeme -

_______________________________________________
fpGUI - a cross-platform Free Pascal GUI toolkit
http://opensoft.homeip.net/fpgui/

Reply by email

Graeme Geldenhuys
to Florian Klaempfl: Git is a hype. Git might be nice for projects with >100 developers and which has (like…
Florian Klaempfl wrote 5 lines
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.

Show quoted text 5 lines
> > * 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[1] 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 folders.

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.

Regards,
- Graeme -

_______________________________________________
fpGUI - a cross-platform Free Pascal GUI toolkit
http://opensoft.homeip.net/fpgui/

Reply by email

Vincent Snijders
to Graeme Geldenhuys

2008/11/5 Graeme Geldenhuys :

Show quoted text 7 lines
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.

I hope you are using svn2.freepascal.org for these test, as not to disturb the production use on svn.freepascal.org.

Vincent

Reply by email

Graeme Geldenhuys
to Graeme Geldenhuys: That's like saying.... I'm a single developer, I don't need a Source Code Version tool.…
Graeme Geldenhuys wrote 12 lines
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 folders. 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!

Another cool thing that could be done for new developers wanting to get a checkout of Lazarus or FPC. Weekly or Monthly archives of the repository could be created.

I compressed the Lazarus HEAD checkout of Git with 7zip. That dropped the size of the whole repository down to 23MB. Smaller than my current stripped lazarus executable. :-)

Once the full history Git checkout is complete, I'll compress it with 7zip as well to see how small it can go.

Regards,
- Graeme -

_______________________________________________
fpGUI - a cross-platform Free Pascal GUI toolkit
http://opensoft.homeip.net/fpgui/

Reply by email

Florian Klaempfl
to Graeme Geldenhuys: That's like saying.... I'm a single developer, I don't need a Source Code Version tool.…
Show quoted text 9 lines
On 11/5/08, Florian Klaempfl 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.

No. The point is that a dvcs has drawbacks. The distributed nature requires a very strict management of repository structure and for the changeset flow. Which repository is used the create the releases? Who merges to this repository and when? What if somebody never pushes his changes and keeps them local till his harddisk breaks? How does testing work? When are tests run? At every commit? Every push? Not to mention the more complex use of a dvcs. Here at work I'am happy if people use svn up/svn co correctly and not do svn rm/svn add to commit a changed file.

With subversion is this self regulated and the structure subversion offers is enough for smaller projects like fpc/lazarus.

Reply by email

Alexander Klenin
to Florian Klaempfl: No. The point is that a dvcs has drawbacks. The distributed nature requires a very strict…
Florian Klaempfl wrote
No. The point is that a dvcs has drawbacks. The distributed nature requires a very strict management of repository structure and for the changeset flow.

Hm. It is true that DCVS _allow_ various policies and workflows unavailable to centralized ones, but I do not see how such policies are required. While, as I said, I do not advocate moving Lazarus to DCVS at this time, I think your notion of DCVS complexity is exaggerated.

Let us see if I can help it ;-)

Which repository is used the create the releases?

The one currently agreed on by the developers -- just as with SVN.

Who merges to this repository and when?

Those who have access to it -- similar to commit access with SVN. (Or even only one person, as is the case with Linux -- but this is the extreme decentralization, there is no need to go this far).

What if somebody never pushes his changes and keeps them local till his harddisk breaks?

His changes do not get into the release -- same as if he would make changes to his working copy in SVN and not commit / send patches out. Notice the very important difference here: while in SVN these changes are "hidden"
and not available to other users/developers, DVCS allow others to use/test/review/build upon changes even before they hit the central repository. Another DCVS advantage is that the local changes need not be lumped together into a single commit, which is very important for large changes.

How does testing work?

As usual, somebody runs tests and checks the results.

When are tests run? At every commit? Every push?

That, or at every pull/fetch, or periodically --
there is no difference in centralized vs distributed VCS here.

Alexander S. Klenin Insight Experts Ltd.

Reply by email

Florian Klaempfl
to Alexander Klenin
Show quoted text 6 lines
On Wed, Nov 5, 2008 at 22:18, Florian Klaempfl wrote: > No. The point is that a dvcs has drawbacks. The distributed nature > requires a very strict management of repository structure and for the > changeset flow. Hm. It is true that DCVS _allow_ various policies and workflows unavailable to centralized ones, but I do not see how such policies are required.

At least the development of FPC has shown that such policies are needed.

Show quoted text 7 lines
While, as I said, I do not advocate moving Lazarus to DCVS at this time, I think your notion of DCVS complexity is exaggerated. Let us see if I can help it ;-) > Which repository is used the create the releases? The one currently agreed on by the developers -- just as with SVN.

So what's the advantage then? With a DCVS you've try to force the developers by organisatorical means to follow a structure. With SVN, the technical aspects force some structure so it is self regulating and much easier to keep.

Show quoted text 6 lines
> What if somebody never pushes his changes and keeps them local till his harddisk breaks? His changes do not get into the release -- same as if he would make changes to his working copy in SVN and not commit / send patches out. Notice the very important difference here: while in SVN these changes are "hidden"

No.

and not available to other users/developers, DVCS allow others to use/test/review/build upon changes even before they hit the central repository.

This is where one uses branches in svn: everything is already in a central storage, interested people get easily informed about the change because they read commit logs, no need for local backups, no hazzle to publish local trees and fast access for everybody.

Another DCVS advantage is that the local changes need not be lumped together into a single commit, which is very important for large changes.

?

> How does testing work? As usual, somebody runs tests and checks the results.

No, everybody, not somebody, has to run tests, at least for FPC.

Show quoted text 5 lines
> When are tests run? At every commit? Every push? That, or at every pull/fetch, or periodically -- there is no difference in centralized vs distributed VCS here.

Of course there is: before I commit a change to the fpc repository, I run the testsuite to avoid regressions (takes at least 10 min). When I use a dvcs, I've to run this tests twice: when I commit (so I know that my patch works) and when I push all the commits. This is wasted time for me.

Reply by email

Graeme Geldenhuys
to Florian Klaempfl: No. The point is that a dvcs has drawbacks. The distributed nature requires a very strict…
Florian Klaempfl wrote
No. The point is that a dvcs has drawbacks. The distributed nature requires a very strict management of repository structure and for the changeset flow.

You have the exact same issues with SubVersion!

Which repository is used the create the releases?

The same servers hosting the current SubVersion could be used as the "master" repository if you want. But other distributed repositories could also be setup to ease the load on the main server. Much like svn2.freepascal.org is used for. The secondary repositories could then be setup to push changes (manually or automatically) back to the primary server - at times when the main server normall has low load.

Who merges to this repository and when?

Who merges changes and patch now to SubVersion? Those same users would have write access to the Git repository.

What if somebody never pushes his changes and keeps them local till his harddisk breaks?

Same can be said for SubVersion. What if you make local changes and never commit a patch? At least with local commits in Git, you still have the benefit of seeing revision changes between all your local work. So I can implement something of say a 1 month period. I can see what I changed and undo changes locally as I see if. Once the feature is 100% implemented, I can push those changes to somebody that can commit in the primary server. With SubVersion my 1 months changes will be a single revision. I have no undo during that month or incremental history of my feature.

How does testing work? When are tests run? At every commit? Every push?

Who does testing work in SubVersion, Who runs the tests? When does test get run? I fail to see how this is any different between Git and SubVersion?

the more complex use of a dvcs. Here at work I'am happy if people use svn up/svn co correctly and not do svn rm/svn add to commit a changed file.

And why would using Git be an issue in this case? Simply don't give them write access the primary repository. They could push changes (via direct commit, or as a patch emailed to you) and you can review changes before it's applied permanently.
Git can make patch too - you don't always have to commit directly to a server.

With subversion is this self regulated and the structure subversion offers is enough for smaller projects like fpc/lazarus.

Please watch the YouTube demo on Git. You will find it enlighening - I'm busy watching it now. The guy doing the demo has only used Git in small teams 3-6 developers and admits he hasn't used in in large environments (like Linux kernel), yet he is still impressed by the improvements over CVS and SVN.
[http://www.youtube.com/watch?v=8dhZ9BXQgc4]

There are lots of small, but impressive, pieces of information in that talk.

Regards,
- Graeme -

_______________________________________________
fpGUI - a cross-platform Free Pascal GUI toolkit
http://opensoft.homeip.net/fpgui/

Reply by email

Graeme Geldenhuys
to Alexander Klenin: Git already has efficient repository packing (try "git repack -a -d"). I doubt you gain…
Alexander Klenin wrote 5 lines
> Once the full history Git checkout is complete, I'll compress it with > 7zip as well to see how small it can go. Git already has efficient repository packing (try "git repack -a -d"). I doubt you gain anything by applying external compression to it.

Yes, I've heard about 'git-gc' and 'git repack', and will try it out once I have the complete Lazarus history. Saying that, I have still not seen any compression program beat 7zip.

Regards,
- Graeme -

_______________________________________________
fpGUI - a cross-platform Free Pascal GUI toolkit
http://opensoft.homeip.net/fpgui/

Reply by email

Florian Klaempfl
to Graeme Geldenhuys: You have the exact same issues with SubVersion! The same servers hosting the current…

See my other mail ;)

Show quoted text 6 lines
Please watch the YouTube demo on Git. You will find it enlighening - I'm busy watching it now. The guy doing the demo has only used Git in small teams 3-6 developers and admits he hasn't used in in large environments (like Linux kernel), yet he is still impressed by the improvements over CVS and SVN. [http://www.youtube.com/watch?v=8dhZ9BXQgc4]

What I read so far about the "advantages" of git in small teams can be achieved easier with svn. I can't help people if they don't know how to use svn.

Reply by email

Graeme Geldenhuys
to Florian Klaempfl: No. The point is that a dvcs has drawbacks. The distributed nature requires a very strict…
Florian Klaempfl wrote 5 lines
the more complex use of a dvcs. Here at work I'am happy if people use svn up/svn co correctly and not do svn rm/svn add to commit a changed file. With subversion is this self regulated and the structure subversion offers is enough for smaller projects like fpc/lazarus.

My (personal) two main benefit for Git is:
* I can easily and quickly do revision comparisons locally without communicating with the remote server
* I can do local commits and keep a history of those commits. Then once my long taking feature is complete, I can generate a patch for "primary" repository.

Good news is, that Git's core tools include CVS and SVN support. So you can wrap CVS or SVN repositories with Git. So I can use Git locally while the repository is SubVersion. I will be trying this with Lazarus.

The other pretty cool feature is that Git includes a CVS Server (I think SubVersion too). So for those die-hard users that don't want to learn a new toolset, can still access a Git repository as if it was a CVS repository. You can even continue using your GUI CVS frontend tools. Like I said, I'm not 100% sure, but I think it can do the same for SubVersion.

Regards,
- Graeme -

_______________________________________________
fpGUI - a cross-platform Free Pascal GUI toolkit
http://opensoft.homeip.net/fpgui/

Reply by email

Graeme Geldenhuys
to Florian Klaempfl: For the record, the whole lazarus svn repository on idefix is 392 MB, i.e. including all…
Florian Klaempfl wrote
Graeme Geldenhuys schrieb: For the record, the whole lazarus svn repository on idefix is 392 MB, i.e. including all history.

What is "idefix"?

Like I mentioned before... I did a fresh Lazarus Trunk (head) revision checkout with svn. The total size of that single (head) revision was 314MB. That's one revision with no history. If I do a 'svn export' of that directory to get rid of all the .svn directories, the size drops to 76MB.

Anyway, I have no idea what 'idefix' is so I can't really comment on your message.

Regards,
- Graeme -

_______________________________________________
fpGUI - a cross-platform Free Pascal GUI toolkit
http://opensoft.homeip.net/fpgui/

Reply by email

Florian Klaempfl
to Graeme Geldenhuys
Show quoted text 8 lines
On 11/5/08, Florian Klaempfl wrote: > Graeme Geldenhuys schrieb: > > For the record, the whole lazarus svn repository on idefix is 392 MB, > i.e. including all history. What is "idefix"?

The machine running svn.freepascal.org.

Show quoted text 6 lines
Like I mentioned before... I did a fresh Lazarus Trunk (head) revision checkout with svn. The total size of that single (head) revision was 314MB. That's one revision with no history. If I do a 'svn export' of that directory to get rid of all the .svn directories, the size drops to 76MB.

392 MB is the size of repository on the server.

Show quoted text 17 lines
Anyway, I have no idea what 'idefix' is so I can't really comment on your message. Regards, - Graeme - _______________________________________________ fpGUI - a cross-platform Free Pascal GUI toolkit http://opensoft.homeip.net/fpgui/ _______________________________________________ Lazarus mailing list http://www.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply by email

Florian Klaempfl
to Graeme Geldenhuys: My (personal) two main benefit for Git is: * I can easily and quickly do revision…
Show quoted text 11 lines
On 11/5/08, Florian Klaempfl wrote: > the more complex use of a dvcs. Here at work I'am happy if people use > svn up/svn co correctly and not do svn rm/svn add to commit a changed file. > > With subversion is this self regulated and the structure subversion > offers is enough for smaller projects like fpc/lazarus. My (personal) two main benefit for Git is: * I can easily and quickly do revision comparisons locally without communicating with the remote server

This is indeed a point and that's why I installed the mercurial mirror already some time ago.

* I can do local commits and keep a history of those commits. Then once my long taking feature is complete, I can generate a patch for "primary" repository.

The better way is imo to create a branch at the main repository where you can work, so as I said in my other mail, it is backed up, everybody can review it early and easily, you don't need to take the hazzle to get your own tree online.

Reply by email

Graeme Geldenhuys
to Florian Klaempfl: At least the development of FPC has shown that such policies are needed. So what's the…
Florian Klaempfl wrote
> Hm. It is true that DCVS _allow_ various policies and workflows unavailable > to centralized ones, but I do not see how such policies are required. At least the development of FPC has shown that such policies are needed.

And why can't you have that same policies for a Git repository?

Show quoted text 6 lines
> His changes do not get into the release -- same as if he would make changes > to his working copy in SVN and not commit / send patches out. > Notice the very important difference here: while in SVN these changes > are "hidden" No.

Florian, I fail to understand your problem.... And fully agree with Alexander. At the moment with SubVersion - if I do not send you a patch, my changes are going nowhere. So if my hard drive breaks, that information is lost. The exact same rule applies to Git. If I don't push the changes to you, or send you a patch via email and my hard drive breaks. That information is lost - unless somebody pulled/fetched changes from my Git repository.

This is where one uses branches in svn: everything is already in a central storage, interested people get easily informed about the change because they read commit logs, no need for local backups, no hazzle to publish local trees and fast access for everybody.

And to use branches I need write access to the SVN repository. So now you will be happy giving everybody write access? And filling the 'branches' directory with everybody's experiments. That brings me to the other point (also mentioned in the Git video). What if you like to experiment, but don't want others to see? Say I try something out and it fails, or the idea just isn't viable anymore. Everybody has seen your failure and you feel miserable. At least with Git, I could experiment without bothering others, not even requiring write access to the "primary" repository. If I fail, only I know about it. If I succeed, I will push the changes forward. :-)

>> How does testing work? > As usual, somebody runs tests and checks the results. No, everybody, not somebody, has to run tests, at least for FPC.

Yes, we use SubVersion in our company as well and also have that rule. We still get times when developers fail to run the tests before they commit - and trunk is broken. This happens often in Lazarus Trunk as well!

What we do for the tiOPF project is setup automated unit tests. It runs every 3 hours under Windows with Delphi 7, 2005, 2007 and every 3 hours under Linux with FPC 2.2.3. Summary results are emailed to the tiopf.dailybuilds newsgroup. If failures occurred, the failure results are attached to that email.
So even if you commit without running tests locally first, the longest a bug will go unnoticed is 1.5 hours (Windows and Linux test runs are staggered).

Regards,
- Graeme -

_______________________________________________
fpGUI - a cross-platform Free Pascal GUI toolkit
http://opensoft.homeip.net/fpgui/

Reply by email

Graeme Geldenhuys
to Florian Klaempfl: See my other mail ;) What I read so far about the "advantages" of git in small teams can…
Florian Klaempfl wrote
What I read so far about the "advantages" of git in small teams can be achieved easier with svn. I can't help people if they don't know how to use svn.

And the single best feature svn doesn't have is full history on the client side. And the single feature I want the most.

Regards,
- Graeme -

_______________________________________________
fpGUI - a cross-platform Free Pascal GUI toolkit
http://opensoft.homeip.net/fpgui/

Reply by email

Graeme Geldenhuys
to Florian Klaempfl: The machine running svn.freepascal.org. 392 MB is the size of repository on the server.
Florian Klaempfl wrote
> What is "idefix"? The machine running svn.freepascal.org.

Ah, ok.

Show quoted text 7 lines
> Like I mentioned before... I did a fresh Lazarus Trunk (head) revision > checkout with svn. The total size of that single (head) revision was > 314MB. That's one revision with no history. If I do a 'svn export' of > that directory to get rid of all the .svn directories, the size drops > to 76MB. 392 MB is the size of repository on the server.

Yes that's great but useless to anybody using the repository - even if you work directly on that server machine! Nobody can use the repository directly and have full history. You need to use 'svn checkout' which only pulls out ONE revision and is almost the size of the whole repository on the server! And you DON'T have the full history, just ONE revision. A single revision checkout = 314MB. Pitty they couldn't implement that SubVersion efficiency on the client side as well.

Regards,
- Graeme -

_______________________________________________
fpGUI - a cross-platform Free Pascal GUI toolkit
http://opensoft.homeip.net/fpgui/

Reply by email

Florian Klaempfl
to Graeme Geldenhuys: And why can't you have that same policies for a Git repository? Florian, I fail to…
Show quoted text 7 lines
On 11/5/08, Florian Klaempfl wrote: > > Hm. It is true that DCVS _allow_ various policies and workflows unavailable > > to centralized ones, but I do not see how such policies are required. > > At least the development of FPC has shown that such policies are needed. And why can't you have that same policies for a Git repository?

A git repository requires even more.

Show quoted text 11 lines
> > His changes do not get into the release -- same as if he would make changes > > to his working copy in SVN and not commit / send patches out. > > Notice the very important difference here: while in SVN these changes > > are "hidden" > > No. Florian, I fail to understand your problem.... And fully agree with Alexander. At the moment with SubVersion - if I do not send you a patch, my changes are going nowhere.

Indeed, but as soon as you commit on svn, things are save, this is not true for git.

Show quoted text 13 lines
So if my hard drive breaks, that information is lost. The exact same rule applies to Git. If I don't push the changes to you, or send you a patch via email and my hard drive breaks. That information is lost - unless somebody pulled/fetched changes from my Git repository. > This is where one uses branches in svn: everything is already in a > central storage, interested people get easily informed about the change > because they read commit logs, no need for local backups, no hazzle to > publish local trees and fast access for everybody. And to use branches I need write access to the SVN repository. So now you will be happy giving everybody write access?

People having asked so far, got their own branch, at least for FPC.

And filling the 'branches' directory with everybody's experiments.

Doing svn rm is rather simple if needed. But I'd be happy to see people filling branches with experiments, yes :)

Show quoted text 8 lines
That brings me to the other point (also mentioned in the Git video). What if you like to experiment, but don't want others to see? Say I try something out and it fails, or the idea just isn't viable anymore. Everybody has seen your failure and you feel miserable. At least with Git, I could experiment without bothering others, not even requiring write access to the "primary" repository. If I fail, only I know about it. If I succeed, I will push the changes forward. :-)

If they are accepted. In the worst case you worked months on the wrong track because you got no feedback. It is a point for NDA affected stuff, but imo no common use case for FPC/Lazarus.

Show quoted text 10 lines
> >> How does testing work? > > As usual, somebody runs tests and checks the results. > > No, everybody, not somebody, has to run tests, at least for FPC. Yes, we use SubVersion in our company as well and also have that rule. We still get times when developers fail to run the tests before they commit - and trunk is broken. This happens often in Lazarus Trunk as well!

This doesn't solve git either, it makes things probably even worse: people think there local tree works and they tested all commits so they push without testing.

Show quoted text 6 lines
What we do for the tiOPF project is setup automated unit tests. It runs every 3 hours under Windows with Delphi 7, 2005, 2007 and every 3 hours under Linux with FPC 2.2.3. Summary results are emailed to the tiopf.dailybuilds newsgroup. If failures occurred, the failure results are attached to that email.

FPC does this too (nightly) but it often doesn't help either ;)

So even if you commit without running tests locally first, the longest a bug will go unnoticed is 1.5 hours (Windows and Linux test runs are staggered).

Anyways, since git is near to unusable on windows anyways, it is out of the game :)

Reply by email

Vincent Snijders
to Florian Klaempfl

2008/11/5 Florian Klaempfl :

Show quoted text 12 lines
Graeme Geldenhuys schrieb: > And to use branches I need write access to the SVN repository. So now > you will be happy giving everybody write access? People having asked so far, got their own branch, at least for FPC. > And filling the > 'branches' directory with everybody's experiments. Doing svn rm is rather simple if needed. But I'd be happy to see people filling branches with experiments, yes :)

Apparently this is not the case for the fpc docs.

Vincent

Reply by email

Florian Klaempfl
to Vincent Snijders
Show quoted text 13 lines
2008/11/5 Florian Klaempfl : > Graeme Geldenhuys schrieb: >> And to use branches I need write access to the SVN repository. So now >> you will be happy giving everybody write access? > People having asked so far, got their own branch, at least for FPC. > >> And filling the >> 'branches' directory with everybody's experiments. > Doing svn rm is rather simple if needed. But I'd be happy to see people > filling branches with experiments, yes :) > Apparently this is not the case for the fpc docs.

Well, even I don't owe to commit to the fpc docs repository without fear :) This is something special ;)

Reply by email

Marco Ciampa
to Florian Klaempfl: This is indeed a point and that's why I installed the mercurial mirror already some time…
Florian Klaempfl wrote 25 lines
Graeme Geldenhuys schrieb: > On 11/5/08, Florian Klaempfl wrote: >> the more complex use of a dvcs. Here at work I'am happy if people use >> svn up/svn co correctly and not do svn rm/svn add to commit a changed file. >> >> With subversion is this self regulated and the structure subversion >> offers is enough for smaller projects like fpc/lazarus. > > > My (personal) two main benefit for Git is: > * I can easily and quickly do revision comparisons locally without > communicating with the remote server This is indeed a point and that's why I installed the mercurial mirror already some time ago. > * I can do local commits and keep a history of those commits. Then > once my long taking feature is complete, I can generate a patch for > "primary" repository. > The better way is imo to create a branch at the main repository where you can work, so as I said in my other mail, it is backed up, everybody can review it early and easily, you don't need to take the hazzle to get your own tree online.

Since it seems (to me) more a DVCS vs CVCS instead of a GIT vs SVN thread, please consider Bazaar.

http://bazaar-vcs.org/BzrVsGit

from the cons of GIT I see primarly:

- Windows support: Bazaar, includes a native Windows port and installer. The port feels like a regular Windows program. See for example: http://bazaar-vcs.org/TortoiseBzr
- It Just Works (see the article...)
- Easier administration (see the article...)
- It Just Works (see the article...)
- Launchpad integration (self explanatory...)
...

The article mentions this too that started it all: http://svn.haxx.se/dev/archive-2007-06/0780.shtml

PS: there is a bzr-svn tool in my Ubuntu that enable me to use the svn repository as a bzr repo but I still need write permission... :-(

Marco Ciampa +--------------------+ | Linux User #78271 | | FSFE fellow #364 | +--------------------+

Reply by email

Graeme Geldenhuys
to Florian Klaempfl: This is indeed a point and that's why I installed the mercurial mirror already some time…
Florian Klaempfl wrote
The better way is imo to create a branch at the main repository where you can work, so as I said in my other mail, it is backed up, everybody can review it early and easily,

My last point on the subject... You last statement is a "pipe dream". Nobody has time to even implement all there own todo list items and nice features. So where is everybody going to get the time to review other peoples "in progress" code as well, and in all the branches.

But like you said, the Windows support in not ideal yet, so the whole point of Git is moot at this time. I respect that.

Regards,
- Graeme -

_______________________________________________
fpGUI - a cross-platform Free Pascal GUI toolkit
http://opensoft.homeip.net/fpgui/

Reply by email

Graeme Geldenhuys
to Florian Klaempfl: 122 MB is still less than 148 MB. But anyways, the git/dvcs hypers always forget about…
Florian Klaempfl wrote 6 lines
> Git for our company repositories. In SubVersion, branching is like an > afterthought. Manually having to track merges to a branch (though > apparently there was been some work towards this), etc... This is not true. svnmerge works very well for years for FPC.

I have never heard of svnmerge. It's not on my Ubuntu system either, and I have svn installed - so I gather it's not a standard SubVersion tool. Could you tell me more about this? Is it something the FPC team created for FPC? Where can I get it and can you give a possible usage example?

Regards,
- Graeme -

_______________________________________________
fpGUI - a cross-platform Free Pascal GUI toolkit
http://opensoft.homeip.net/fpgui/

Reply by email

Florian Klaempfl
to Graeme Geldenhuys: My last point on the subject... You last statement is a "pipe dream". Nobody has time to…
Show quoted text 9 lines
On Wed, Nov 5, 2008 at 3:20 PM, Florian Klaempfl wrote: > The better way is imo to create a branch at the main repository where > you can work, so as I said in my other mail, it is backed up, everybody > can review it early and easily, My last point on the subject... You last statement is a "pipe dream". Nobody has time to even implement all there own todo list items and nice features. So where is everybody going to get the time to review other peoples "in progress" code as well, and in all the branches.

We do this at least for the compiler and the rtl.

But like you said, the Windows support in not ideal yet, so the whole point of Git is moot at this time. I respect that.

You should have a look at mercurial then. Mercurial was started with the same motivation as git but isn't a heap of unixish script hacks.

Reply by email

Florian Klaempfl
to Graeme Geldenhuys: I have never heard of svnmerge. It's not on my Ubuntu system either, and I have svn…
Show quoted text 11 lines
On 11/5/08, Florian Klaempfl wrote: > > Git for our company repositories. In SubVersion, branching is like an > > afterthought. Manually having to track merges to a branch (though > > apparently there was been some work towards this), etc... > > > This is not true. svnmerge works very well for years for FPC. I have never heard of svnmerge. It's not on my Ubuntu system either, and I have svn installed - so I gather it's not a standard SubVersion tool.

# svnmerge
The program 'svnmerge' is currently not installed. You can install it by typing:
apt-get install subversion-tools
-bash: svnmerge: command not found

Could you tell me more about this?

It does merge tracking for you. We use it for years to track merged changes to the fixes branches.

Is it something the FPC team created for FPC? Where can I get it and can you give a possible usage example?

http://www.orcaware.com/svn/wiki/Svnmerge.py

Reply by email