Thursday, October 14, 2010

Subversion and Google Project Hosting

This week, I was introduced to Subversion (SVN) and Google Project Hosting.  SVN is a tool for developers to maintain current and historical versions of files such as source code, web pages, and documentation.  Google Project supports the open source community by providing scalable, reliable, and fast collaborative development environment for open source software, docs, and standards that promotes best practices in open source software engineering.

For my Windows development environment, I used TortoiseSVN which provides a Windows shell extension for Subversion.  The program is very easy to use.  One simply needs to obtain the SVN checkout URL and select the target files to upload.

In addition to being able to upload files for other users and developers to see, SVN and Google Project lets many developers work simultaneously on the same project.  I was able to gain some first-hand experience with the robocode-pmj-dacruzer project.  I improved the source code and successfully committed it to the repository.

I then proceeded to create my own robocode-dwl-robotfighter project.  I created a Google discussion group, added several of my colleagues, uploaded my robocode robot system, edited the project home page, and created a UserGuide and DeveloperGuide wiki page.  I successfully accomplished all tasks required for this particular assignment.

The most difficult part of the assignment was using WikiSyntax to create my wiki pages.  Although the creators of wiki-style markup may have thought it was a great idea, I disagree.  It is nonintuitive and made my life more difficult.  They could have at least created a simple GUI with buttons.

Prior to this experience, I did not understand how large-scale software development worked.  I did not understand how companies could assign hundreds of developers on the same project.  After learning that tools like SVN and Google Project Hosting exist, I am very eager to get my hands dirty in collaborative open source software development.

No comments:

Post a Comment