The idea of having a controlled systems where multiple people can access the same code, make changes and continue to work as a whole is genius. Now there are multiple ways to handle this:
- Revision Control System (RCS) - open source, unix based, involves "locking" of files
- Concurrent Versions Systems (CVS) - uses RCS as backend for version control and adds configuration management support. Allows multiple developers to checkout the same file, but merge confilcts. "optimistic locking"
- Subversion (SVN) - back-end repository is a database, versions are not file-based, but repository-wide, "directory" based tags and branches, arbitrary metadata.
Obtaining someone else's
Since I'm using a Mac for the class, the Subversion client I was to download and install is called SmartSVN 4. Amazingly, it has a really nice GUI, the setup was incredibly easy, and I found my self connected to the repository in minutes. After taking on the task to download the stack-johnson repository files, using the SmartSVN was like 2nd nature. Distinguishing recently changed files and committing files with message was a peice of cake. It is amazing how a tool like this could be this easy to use.
Creating my own
After creating my own code space on google code, I used SmartSVN to help create a new repository locally and remotely off of my recent stack project. After running ant -f verify.build.xml, initially I had trouble when it came to selected which files I was to upload. The file hierarchy that Google Code makes it easy to double check and ensure that the right files were committed.
Conclusion
I found all of the tasks to be easy to do once you figure out how to use your SVN client. The hardest thing to do is to configure the client and have it link to your repository. I could see myself using SVN/CVS in a group projects where multitude of members are making changes to important files. Paired with efficiency and functionality, SVN can easily save a lot of headaches and time.
No comments:
Post a Comment