Summary CVS is cool, but subversion is cooler. However, if you are using Eclipse for development, you may not be able to take advantage of subversion until recently. With the release of Subclipse, subversion may eventually overwhelm CVS by giving full power to your Eclipse IDE environment.
I. Introduction to SCM and Subversion
Software configuration Management (SCM) is a good art for managing source code and keeping it safe, enabling the source code to be shared with and protected by other team members. With the good use of SCM, you can easily track the release of software and the new Development Branch, so it is easier to identify and fix bugs in the release product.
In fact, there are a large number of SCM tools available, both open source and commercial, such as Starteam,perforce,bitkeeper and ClearCase. In the open source world, the de facto SCM standard is the concurrent version management System (CVS), which is widely used in hundreds of open source and commercial projects worldwide. However, CVS also has many of the following inherent flaws that make it not perfect for modern engineering development:
Essentially, the design of a text file makes CVS less capable of processing binary files. At each commit, the binaries are transmitted and stored as a whole, which leads to a waste of bandwidth and disk space.
In CVS, you cannot move files and directories. Your only choice is basically to delete and add them back, thus losing all the file history information throughout the process.
The concept of atomic submission is not implemented in CVS. For example, you have to submit 10 files to the server, and the commit operation often stops halfway through the process. (This is likely to happen if someone submits a file at the same time, or even if your network fails or your PC restarts.) In this case, the server will only record half of your corrections, which may leave the base part of the code in a potentially unstable state.
Subversion is a relatively new open source SCM tool designed to fundamentally overcome the limitations of the original CVS. It is a good design tool with many new features suitable for modern development:
· The submission is atomized. Submissions can be correctly added to a new revision, or the warehouse will not be updated, and each new revision is composed only of changes in one submission.
Subversion uses a clever binary technique for text and binary files, which optimizes both network traffic and storage disk space.
In subversion, each revision represents a complete directory tree copy within a specific time. Files and directories can be moved without restriction.
Subversion only stores modifications between two versions, which saves disk space and means that identifying a new version or creating a new child content can be achieved almost immediately.
You can access a Subversion repository in a variety of ways, depending on your needs: using HTTP or HTTPS (used with WebDAV), using fast proprietary SVN: protocols, or directly via local files, and so on.
Ii. integration of Subclipse plug-ins with eclipse
A good SCM should be closely integrated with your work environment. No one really likes to go to the command line to add files to the warehouse. Eclipse has long implemented CVS integration, but until recently subversion users have not been taken seriously. Now, the new Subclipse plug-in provides a smooth subversion integration in eclipse.
(i) Installing Subclipse plug-ins
Below, you install Subclipse from the update site in the usual way:
1. Open the Find and Install window ("Help>software updates>find and Install").
2. Select the "Search for new features to install" option and click Next.
3. Click "New remote Site" and create a remote site using the name subclipse and URL http://subclipse.tigris.org/update_1.0.x (refer to Figure 1).
4. In the result installation window, select the "Subeclipse in" Features to the installation list and start installing the plugin with the wizard.
5. After completing these, restart Eclipse. Now, you can go on!
Figure 1. Installing the Subclipse Plugin