== Introduction == GCC has switched to SVN (see the [[SvnPlan|plan]]). This document is meant for GCC developers and maintainers as a simple way to getting started with Subversion. Anything not covered by this document can be found in the [[http://svnbook.red-bean.com|Official SVN Book]]. == Index of pages == 1. [[SvnSetup|Set up and optimize SVN to access the GCC repository]]. 1. [[SvnIntro|A conceptual introduction to SVN for CVS users]]. (Make sure to read and digest this!) 1. [[SvnBasic|Basic commands]]. 1. [[SvnMerge|Moving patches around: merging and backporting]]. 1. [[SvnBranch|How to maintain a branch]]. 1. [[SvnTricks|Various tricks and recipes]]. 1. [[SvnProblems|Troubleshooting]]. == Top 5 SVN suggestions (for CVS users) == 1. *Use {{{svn status}}} . It'll display what's up in your working copy, in milliseconds! Find out about {{{--show-updates}}} and {{{--verbose}}} 1. *Use {{{svn log}}} . It's nothing like {{{cvs log}}} It's a dynamically-generated ChangeLog, granular to the directory you want, and with the full set of filenames (no evil globs that destroy your grep). 1. *Use {{{svn merge}}} . Don't {{{svn diff || patch}}} Use {{{svn merge}}} to backport patches, it's faster and more correct! 1. *Use {{{svn revert}}} . Don't delete and update: just revert! It's faster, and will also revert adds, removals and whatnot. 1. *Use {{{svn switch}}} . If you have just another working copy around, don't throw it away, switch it to the branch you want and use it