1
edit
Changes
→Status
==Project Contributor(s)==
====Candidates==Options==* Help with [http://lxr.mozilla.org/ LXR]/[http://landfill.mozilla.org/mxr-test/ MXR]/[http://www.mozilla.org/bonsai.html Bonsai] - Not working on setting one up because there is already onedevelopment.* Make a sort-of branch respectful version of [http://gonzui.sourceforge.net Gonzui[OpenGrok]] - Impressive looking thing. This will but this would be my first target to setup due to its simplicity and apparently a very powerful natureshoddy implementation that doesn't really do what it should* [http://www.opensolaris.org/os/project/opengrok/ Setup one OpenGrok] - This is by far per active branch of the coolest project I Mozilla Project, this would have come across so far. It uses Java Server Pagesno version history whatsoever, something I know nothing about, so lots of readingapart from file dates. This is my favorite so far. Example: * [http://cvs.opensolaris.org/source/ OpenSolarisRe]. A good example write major portions of how it takes care of versioning is found at [http://cvs.opensolaris.org/source/[OpenGrok]] deals with history/on/usr/src/uts/sun/io/eri.c Example]. I am looking into and changesets and the "blame" feature requiredlikes, it seems to track who did the last version of the filethis is my personal preference.* Try to fit [http://www.cenqua.com/fisheye/index.html Fisheye] - Commercial Solution that is free (as in beer) into the current development model, but it seems this might be more like finding a problem for open source projectsa solution. Before I start to look at This is a very very powerful tool, but itis not really like LXR or OpenGrok, I would like it is more useful to exhaust analyze CVS/SVN histories more than search for functions, files, definitions and the numerous open source prospectslikes.* Hosted by Tigris - I forgot the name Fisheye is also '''extremely''' slow. Within my lan, it takes a long time to do any queries, but its hosted by "Tigris" and over the internet it looked pretty goodis impossible. If you I don't know why, especially since OpenGrok uses the name, please edit as appropriate* [http://savannahsame basic technologies.nongnu.org/projects/horus Horus] - Not really what is needed(10 minutes plus for one page load on a lan connection, but in its a nice interface for programming students own code. I will not be actively doing anything to it.* [http://bazaar-vcs.org Bazaar] - I dont really know what this isdefence, it might be what is needed, but it might be something irrelevant.* [http://sourceforge.net/projects/sourcenav/ Sourcenav] - investigating this project* [http://google.com/codesearch Google Code Search] - No way to specify still indexing the Mozilla project onlycode)
====LinksWhy I like OpenGrok====Apart from the fact that it does not support branches, this is in my opinion the perfect tool. It is fast, open souce and most importantly, it makes really easy to navigate, well thought out pages that just work. Because of the way OpenSolaris does file versions for their code, they don't use branches at all. OpenSolaris currently uses a linear method of file versioning, they don't use branches, they use versions as a sory of branch, basically the idea that Office 12 is the "2007 branch" and Office 11 is the "2003 branch". Mozilla doesn't do this, so it would be nessecary to implement this feature. Luckily, however, OpenGrok is very modularized and atomic in nature. If you go to the OpenGrok page, you can get a more complete explanation, but the basic jist of it is that there are many "Guru's", each with a task. The files are first read by the History Guru who looks at the file and decides what type of versioning the file uses. Once the versions have been analyzed, they are passed on to the file analyzer guru who then decides what type of file it is, and passes it on to a file type analyzer. The allows for portions of the code to be changed without changing the whole system, so if we wanted to be able to do special things with XUL/XPCOM as far as how to handle its symbols, we would write one module which is not dependent at all on any other file analyzer. The same way, if Mozilla switchs to SVN, we would just port the branching support to SVN. On the chances that Mozilla switches to something other than CVS or SVN, a HistoryGuru could be written for that type of versioning history. The OpenGrok project is under the [http://www.sun.com/cddl/ CDDL] which [http://www.sun.com/cddl/CDDL_MPL_redline.pdf derives from the MPL 1.1] In closing, I really like the OpenGrok project because it is '''very''' fast, '''very''' powerful and '''VERY''' modular! ==Links==
* [https://sparc.senecacollege.ca/portal.php?project&pid=23 Official Blurb] just in case I forget what I am doing :P
* [http://matrix.senecac.on.ca/~jhford/ John's School Page]
* [http://cvs2svn.tigris.org CVS2SVN] Tool to convert CVS to SVN. Will be used to test SVN interop.
* [http://endeveloper.wikipediamozilla.org/wikien/Apache_Tomcat Tomcat on Wikipediadocs/Mozilla_Source_Code_Via_CVS Devmo:CVS Checkout]* [http://developer.mozilla.org/en/docs/Mozilla_Source_Code_Via_CVS Rsyncing_the_CVS_Repository Devmo: Rsyncing the CVS Checkout]* [http://developer.mozilla.org/en/docs/Rsyncing_the_CVS_Repository Rsyncing the CVS_Tags Devmo: CVSTags]- to get the branches to checkout
* [http://www.ubuntuforums.org/showthread.php?t=219985 Tomcat5 on Ubuntu]
* [http://www.onjava.com/pub/a/onjava/2003/06/25/tomcat_tips.html Tomcat Tips]
* [http://atucker.typepad.com/blog/2005/11/a_new_source_br.html Blog Entry] on OpenGrok
* [http://ubuntuforums.org/showthread.php?t=124431 Java5 on Ubuntu] - "sudo update-alternatives --config java" and "apt-get remove --purge java-gcj-compat"
* [http://www.mozilla.org/docs/jargon.html Mozilla Jargon]
* [http://www.deitel.com/CodeSearchEngines/CodeSearchEngines_ResourceCenter_MerobaseOpenGrokCodeProject.html Misc]
* [http://www.sun.com/cddl/CDDL_why_details.html CDDL] - explanation of the diferences between the MPL and CDDL
==Pulling CVS==
This code will pull the CVS for the branches specified in @branches, or it did at some point, your mileage may vary
<pre>
#!/usr/bin/perl
use strict;
use warnings;
# Pull CVS from the mozilla project server
# Where you want the branch folders
my $src_root = "/var/mozilla";
# Where is your run.sh for opengrok? (or equivalent script to start the indexer)
my $opengroker = "/var/opengrok/run.sh";
# Where is your server?
my $cvsserver = ':pserver:anonymous@hera.senecac.on.ca:/cvsroot';
# Branches to be pulled
my @branches = (
"HEAD",
"MOZILLA_1_8_BRANCH",
"MOZILLA_1_8_0_BRANCH",
"AVIARY_1_0_1_20050124_BRANCH",
"REFLOW_20061031_BRANCH"
);
# Descriptions for each branch, don't delete old ones for the sake of deleting them
my %descriptions = (
"HEAD" => "Trunk - development branch",
"MOZILLA_1_8_BRANCH" => "Firefox 2.0 - development branch",
"MOZILLA_1_8_0_BRANCH" => "Firefox 1.5 - maintainance branch",
"MOZILLA_1_7_BRANCH" => "Firefox 1.0 - maintainance branch",
"AVIARY_1_0_1_20050124_BRANCH" => "Suite - maintainance branch",
"REFLOW_20061031_BRANCH" => "Reflow Refactoring"
);
# Open the file or
open BRANCHLIST, ">$branchlistpath" or die "Could not open file";
# Clear out what ever source was there
system ("rm -rf ${src_root}/*");