## Accessing WinMerge Subversion repository

### Why Subversion?

We used SourceForge.net's CVS service for years. It served us pretty well. In 2006 SourceForge made Subversion also available as service. And after short discussion WinMerge developers agreed to switch to Subversion. It fits better to our needs than CVS. So we switched from CVS to Subversion in August 2006.

#### But CVS is better! I Want to use CVS!

We decided subversion is better for us. We keep using Subversion for now on.

#### What happened to code in CVS?

Nothing. It is still there. We don't just checkin anymore to CVS. And CVS page is not visible in our project page.

### Web access

Easiest way to browse our source code is through web. SourceForge.net utilizes ViewVC to access CVS/Subversion repositories via Web. WinMerge Subversion repository is available at: http://winmerge.svn.sourceforge.net/viewvc/winmerge/.

### Subversion client programs

- TortoiseSVN Recommended TortoiseSVN is a great Subversion client program for Windows. It does not need Subversion to be installed.
- Subversion The Thing. If you want to use commandline or if you want your own local Subversion repository, you need it. Not needed for TortoiseSVN.

### Subversion documentation

The Subversion Book is the definite guide to Subversion. Please try to find some time to look at it. There are also many Subversion and SVN resources available in the net. Just listing couple of them here:

- Wikipedia article about Subversion.
- CodeProject articleVersion Control for the Standalone Programmer - Part 1.

### Repository URLs

WinMerge Subversion repository URL is:
`https://winmerge.svn.sourceforge.net/svnroot/winmerge`

Using above URL will checkout all branches and tags also. WinMerge development happens in trunk and URL is:
`https://winmerge.svn.sourceforge.net/svnroot/winmerge/trunk`

Branches are in separate folder:
`https://winmerge.svn.sourceforge.net/svnroot/winmerge/branches`

Current branches are:

- 2.6 release branch
  `https://winmerge.svn.sourceforge.net/svnroot/winmerge/branches/R2_6`
- 2.8 release branch
  `https://winmerge.svn.sourceforge.net/svnroot/winmerge/branches/R2_8`

Old branches (2.0 - 2.4 releases) are in CVS repository.

### Quick intro to using TortoiseSVN

#### Checkout

1. Create top-level folder for your development version (e.g. `c:\devel\WinMerge\`)
2. In Windows explorer, go to that folder, and right-click with mouse in it
3. Select SVN Checkout... -item
4. Give trunk URL (see above) as a repository URL to get out development trunk

SVN should now checkout WinMerge trunk to given folder. Note that there is NO modules in SVN like there is with CVS, so all files in `/trunk` in SVN repository are added to folder you just created. Don't checkout to some common folder expecting there will be WinMerge subfolder anyway!

#### Checkin

1. Update ALL needed files before checking in. With SVN it is just one checkin for one revision, so you can't do like with CVS to checkin one file or directory at a time.
2. Right-click over WinMerge root folder which you created for WinMerge trunk
3. Select SVN Commit from context menu
4. Type message (preferably same than in `changes.txt`) to commit dialog
5. Double-check that all files are in list of files
6. Click OK-button
7. Give your SourceFOrge.net login and password when TortoiseSVN asks them (it remembers them for the next time if you check the checkbox)

Please copy/paste revision number to patch tracker item when you apply a patch to version control. It makes it easier to track changes afterwards. That information is of course available through logs and ViewVC, but it saves some time when revision number is visible in patch item.

#### Update

1. Right-click over WinMerge root folder which you created for WinMerge trunk
2. Select SVN Update from context menu