== About SVN == * Subversion is a free/open source version control system. That is, Subversion manages files and directories, and the changes made to them, over time. [[http://subversion.apache.org/]] * General SVN documentation is available here: [[http://subversion.apache.org/docs/]] and a nice online book can be found here: [[http://svnbook.red-bean.com/]]. * In order to access an SVN repository, you must install a special piece of software called an SVN client; SVN clients are available for most any operating system. === Browsing SVN === You can browse the source repository with a web browser: [[http://chianti.ucsd.edu/svn/cytoscape]] === SVN Access === If you do not have a username on grenache you can check out code anonymously. '''Note''' that you are not able to check code '''IN''' through chianti. This is meant to be a public resource for people other than cytoscape developers. {{{ svn co http://chianti.ucsd.edu/svn/cytoscape/trunk cytoscape }}} If you're a cytoscape developer, you should use grenache to check code in and out. {{{ svn co svn+ssh://grenache.ucsd.edu/cellar/common/svn/cytoscape/trunk cytoscape }}} If this doesn't work, you may need to specify your user account, as defined on grenache. For example: {{{ svn co svn+ssh://username@grenache.ucsd.edu/cellar/common/svn/cytoscape/trunk cytoscape }}} Or, to check out a specific branch: {{{ svn co svn+ssh://grenache.ucsd.edu/cellar/common/svn/cytoscape/branches/Cyto-2.7.x_release_branch/ cytoscape_2_7 }}} == SVN Access in Eclipse == 1. Setup subclipse plugin: [[http://subclipse.tigris.org/]] * Update site for Eclipse 3.2/Callisto, 3.3/Europa, 3.4/Ganymede, 3.5/Galileo +: [[http://subclipse.tigris.org/update_1.6.x]] * Installation instructions can be found here: [[http://subclipse.tigris.org/servlets/ProjectProcess?pageID=p4wYuA]] * In Eclipse, Window>Preferences>Team>SVN. Set SVN Interface to "JavaSVN (Pure Java)" 2. Check out project from UCSD Repository (chianti or grenache): * File --> New --> Project * Select "SVN" * Create new repository. If you have developer account, URL is: {{{ svn+ssh://grenache.ucsd.edu/cellar/common/svn }}} Otherwise, you can check out project anonymously from: {{{ http://chianti.ucsd.edu/svn }}} * You can use default values for port number etc. * ID and password are required on grenache, and not required for anonymous checkout on chiante. These are same as CVS id & password. 3. Check in code - Almost same as GUI for CVS. Select "Team" menu item for more detail. === Tips and Troubleshooting === General advice for those who have difficulties getting SVN access via the Subclipse in the Eclipse environment. These are not meant to be sequential steps. These are just 4 independent tips that address a range of issues, in no particular order. If just doing #1 works, then you're done. But if not, then #2-4 provide other things to try, leads derived from solutions found in various forums and FAQs. 1. SVN Interface: In Eclipse, Window>Preferences>Team>SVN. Set SVN Interface to "JavaSVN (Pure Java)" 2. Define SSH Client for Subversion: A. Edit C:\Documents and Settings\*user*\Application Data\Subversion\config and add "ssh = C:\Program Files\TortoiseSVN\bin\Tortoise''''''Plink.exe" after "[tunnels]" heading. A. Set environment variable "SVN_SSH" to "C:\Program Files\TortoiseSVN\bin\Tortoise''''''Plink.exe" 3. Request a new password from MikeSmoot. Some old passwords may not work (mine didn't!) 4. Try alternative plugins: * TortoiseSVN: [[http://www.tabaquismo.freehosting.net/ignacio/eclipse/tortoise-svn/subversion.html]] * Subversive: [[http://www.eclipse.org/subversive/]] use this url for the Remote Site in the update manager: http://www.polarion.org/download/p_subversive/update-site/ ---- Common Error Messages: Subclipse: 1. "tunneling" problem. Solution = see #1 above. 2. "malformed network data" = may be password problem 3. "std output (err)" issue = may be password problem ---- == What to Check In == In general you should only check in source files and the files needed to compile the source (e.g. library jar files). You should '''NOT''' check in generated files such as jar files that you compiled in your project or .class files. Since these files are created directly from the source, there is no need to check them in and is a waste of disk space. It can also be problematic to check in IDE configuration files. It is OK to check in the configuration file for that particular project, but anything that is specific to your machine (e.g. lists a specific class path) should be avoided since this will not work in other people's configurations. == Creating New Projects == Given the current configuration of our system, it is rare that you should be creating a new top-level project. In general, you will want to add files to an existing project rather than creating a new project. This holds for new plugins or libraries for cytoscape. To add new files, simple check out the existing project, move your new files into the directory that you'd like to add to the project, and then run {{{svn add directory-to-add}}} to add the files to the project. If you find that you do need to run the {{{svn import}}} command, then please contact MikeSmoot before doing so.