From: Jakub Narebski <jnareb@gmail.com>
To: Arnaud Bailly <abailly@oqube.com>
Cc: git@vger.kernel.org, Sam Vilain <sam@vilain.net>
Subject: Re: From P4 to Git
Date: Fri, 31 Jul 2009 11:22:42 +0200 [thread overview]
Message-ID: <200907311122.43918.jnareb@gmail.com> (raw)
In-Reply-To: <85r5vxbd8e.fsf@oqube.com>
I have re-added git mailing list to Cc.
On Fri, 31 July 2009, Arnaud Bailly wrote:
> Jakub Narebski <jnareb@gmail.com> writes:
>>
>>> 2. have a very large codebase
>>
>> How large codebase? What it means "large codebase"? Large number of
>> files, or files large in size (usually binary)?
>
> Mostly lot of source files, amounting to about 9 MLOCs of mixed
> languages source.
>
>> Git can deal comfortably with codebase of the size of Linux kernel.
>> Perl 5 core was converted from Perforce to Git.
>
> I guess we are in the same order of magnitude than kernel.
Linux kernel, for development of which git was initially designed,
is around 7.5M LoC of code (10M LoC with comments and blank lines)[1].
The performance for such large codebase has to be good (at least on
Linux and other POSIX systems), as good performance was one of goal
decisions of git.
Perl 5 core, which version control history was converted from Perforce
to Git in December 2008[1][2] by Sam Vilain (you might want to take
a look how it was done; unfortunately it seems that Sam Vilain blog
vanished from Internet), is 2.3M LoC of mixed language code (mainly
Perl and C, with twice as much Perl), so it is smaller than yours
codebase.
[1] According to OSS software metric site Ohloh (http://www.ohloh.net)
[2] http://news.perlfoundation.org/2008/12/perl_5_development_now_on_git.html
[3] http://use.perl.org/article.pl?sid=08/12/22/0830205
>> But git is snapshot based, not changeset based, and treats project
>> (repository) as whole, not as a combination of single file histories.
>> This means that it would be unproductive to use 'everything in single
>> repository' approach. If your codebase is of the size of whole KDE
>> tree, or the whole GNOME tree, you would need to organize it and split
>> it into smaller, reasonably sized repositories (you can urganize them
>> back together in a superproject using submodules).
>
> That's my biggest concern. We are actually using a single tree repository
> approach with lot of branches. What led me to Git at first was the ease
> of branching and merging. I used branching and merging with Subversion
> and its painful.
So it looks like you wouldn't _need_ to split source tree into separate
smaller repositories for performance reasons. Still it might be good
idea to put separate (sub)projects into separate repositories. But
I guess you can do that even at later time (although it would be best
to do this upfront).
Branching and merging in Git is very easy (with Subversion 1.5 merging
is supposedly to get easier). Git itself uses 'topic branches' workflow,
where each feature (each series of patches) gets its own branch, and
branches are cherry-picked to be merged (or to be dropped, or replaced
by newer version of series).
>> There is GitStat project: http://mirror.celinuxforum.org/gitstat/
Which follows Linux kernel. There are also some GitStat deployments
tracking other code.
>> There was also Git-Statistics project at Google Summer of Code 2008
>> which repository can be found at http://repo.or.cz/w/git-stats.gitSee http://git.or.cz/gitwiki/SoC2008Projects
>>
>
> Great.
And there are tools such as Ohloh, which do software metric, and some
of code is available. GitHub hosting site also offers some software
metric / statistic tools in its web interface; I don't know about other
sites such as Gitorious or InDefero. Gitweb currently doesn't offer any
statistics.
--
Jakub Narebski
Poland
next prev parent reply other threads:[~2009-07-31 9:16 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-07-28 20:14 From P4 to Git Arnaud Bailly
2009-07-28 20:32 ` david
2009-07-28 21:10 ` Jakub Narebski
[not found] ` <85r5vxbd8e.fsf@oqube.com>
2009-07-31 9:22 ` Jakub Narebski [this message]
2009-07-31 11:14 ` Alex Riesen
2009-08-03 7:49 ` Sam Vilain
2009-08-03 8:47 ` Alex Riesen
2009-08-03 11:30 ` Sam Vilain
2009-08-03 13:50 ` Alex Riesen
2009-08-03 20:32 ` Sam Vilain
2009-08-03 21:51 ` Alex Riesen
2009-08-04 0:29 ` Sam Vilain
2009-08-02 7:16 ` Sam Vilain
2009-08-04 12:31 ` Arnaud Bailly
2009-08-04 12:35 ` Peter Baumann
2009-08-03 21:37 ` John Tapsell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200907311122.43918.jnareb@gmail.com \
--to=jnareb@gmail.com \
--cc=abailly@oqube.com \
--cc=git@vger.kernel.org \
--cc=sam@vilain.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).