Monday, October 19, 2009

Make My Robocode Open Sourced

Most of the time when people try to accomplish a complicate task, they need collaborate with other people. For example, you may know exactly how to build an Egyptian Pyramid, but you can never finish it alone. Therefore, it is very important to learn the art of collaboration. In software development, the tool that help people to collaborate is called version control program. This time, I will share my experience of using subversion(SVN) and Google Project Hosting.

Google Project Hosting is a free place that you can use as a repository. To start creating a new project, you need to have a gmail account. Once you log in, you can create a project with a project name you specify. Then you can put some summary and description for your project. The description is formatted in Wiki markup format. It has some tutorial on line and it is pretty straight forward. Then you can start inviting your partners to this project.

You might realize that there is no source code for your project yet. Yes, you need to use an SVN client to export your code into the on line repository. What I did is I downloaded and installed the TortoiseSVN on my machine (I use Windows), then I restarted my computer. Because TortoiseSVN is integrated within the shell, you can just right click on the project folder and go to TortoiseSVN and choose "Export". Then you need to type in the URL of repository in the text box and click "OK". After authentication, SVN client is going to upload everything in that folder to the on line repository and you will find your code if you click "Browse" in the "Source" tab in the your google project. If you partners need to work on your project, they can do a SVN Checkout and they will have a copy of the project locally.

Now, the most important thing is done. Later, you may want to create a google group for discussion of your project and put some wiki pages in your project as documentation.

SVN is a really important tool that facilitates a large project development. People can check out the source and work on their own. After they finished their part, they can submit the change and SVN will help to merge them together. If there is a conflict occurred, SVN will point out the difference and ask developers to figure it out. I cannot imagine how much time and effort in project development are saved from version control.

No comments:

Post a Comment