| |
| Subversion, a version control system. |
| ===================================== |
| |
| $LastChangedDate$ |
| |
| Contents: |
| |
| I. A FEW POINTERS |
| II. DOCUMENTATION |
| III. PARTICIPATING IN THE SUBVERSION COMMUNITY |
| IV. QUICKSTART GUIDE |
| V. CONVERTING FROM CVS |
| |
| |
| I. A FEW POINTERS |
| |
| For an overview of the Subversion project, visit |
| |
| http://subversion.tigris.org/ |
| |
| Once you have a Subversion client you can get the latest version |
| of the code with the command: |
| |
| $ svn co http://svn.collab.net/repos/svn/trunk subversion |
| |
| |
| |
| II. DOCUMENTATION |
| |
| The main documentation is the Subversion Book, written in |
| DocBook XML, which lives in the doc/ tree. If you wish to build |
| the documentation from source, read doc/book/README. Otherwise, |
| an on-line version of the book can be found at |
| http://svnbook.red-bean.com. |
| |
| See COPYING for copyright information. |
| See HACKING for development information. |
| See INSTALL for installation information. |
| |
| |
| |
| III. PARTICIPATING IN THE SUBVERSION COMMUNITY |
| |
| First, read the HACKING file! It describes Subversion coding and |
| log message standards, as well as how to join discussion lists. |
| |
| Talk on IRC with developers: irc.freenode.net, channel #svn. |
| |
| Read the FAQ: http://subversion.tigris.org/faq.html |
| |
| |
| |
| IV. QUICKSTART GUIDE |
| |
| Please note that this section is just a quick example for people |
| who want to see Subversion run immediately. It's not an excuse |
| to ignore the book! |
| |
| The Subversion client has an abstract interface for accessing a |
| repository. Three "Repository Access" (RA) implementations |
| currently exist as libraries: |
| |
| libsvn_ra_dav: accesses a networked repository using WebDAV. |
| libsvn_ra_local: accesses a local repository using Berkeley DB. |
| libsvn_ra_svn: accesses a remote repository using a custom protocol. |
| |
| You can see which methods are available to your 'svn' client by |
| running 'svn --version'. The following example assumes that |
| ra_local is available to your client. (If you don't see |
| ra_local, it probably means that Berkeley DB wasn't found when |
| compiling your client binary.) |
| |
| |
| 1. svnadmin create /path/to/repos |
| |
| - this creates a new directory, 'repos'. Make sure that |
| /path/to/repos/ is on local disk, NOT a network share. |
| |
| - make SURE you have complete recursive read/write access to |
| the newly created 'repos' directory. |
| |
| - understand that the repository is mainly a collection of |
| BerkeleyDB files; you won't actually see your versioned |
| data if you peek in there. |
| |
| 2. svn import /tmp/project file:///path/to/repos -m "Initial import" |
| |
| - /tmp/project is a tree of data you've pre-arranged. |
| If you can, use this layout, as it will help you later on: |
| |
| /tmp/project/branches/ |
| /tmp/project/tags/ |
| /tmp/project/trunk/ |
| foo.c |
| bar.c |
| baz.c |
| etc. |
| |
| 3. svn checkout file:///path/to/repos/trunk project |
| |
| - this creates a 'project' directory which is a working copy of |
| the /trunk directory in the repository. |
| |
| 4. Try using the repository: |
| |
| - edit a file in your working copy. |
| - run 'svn diff' to see the changes. |
| - run 'svn commit' to commit the changes. |
| - run 'svn up' to bring your working copy up-to-date. |
| |
| Be sure to read chapters 2 and 3, they're a critical |
| introduction to the svn commandline client. |
| |
| 5. Get a real server process running (either apache or svnserve) |
| so that your repository can be made available over a network. |
| Read chapters 5 and 6 to learn about how to administer a |
| repository and how to set up a server process. |
| |
| *** NEWBIES BEWARE: |
| |
| The absolute most common stumbling block for newbies is problems |
| with permissions and ownership on the repository. Any process |
| that opens the repository must have complete read/write access |
| to it. This goes for any tool ('svnadmin', 'svnlook') or any |
| server process (apache, svnserve), or your own svn client, if |
| it's accessing via file:///. |
| |
| Look at the last section in chapter 6 to understand how to tweak |
| repository ownership and permissions for multiple users and |
| processes. |
| |
| |
| |
| V. CONVERTING FROM CVS |
| |
| If you're a CVS user trying to move your CVS history over to |
| Subversion, then be sure to visit the 'cvs2svn' project: |
| |
| http://cvs2svn.tigris.org |
| |
| You can get the latest released version of the cvs2svn converter |
| from the project downloads area: |
| |
| http://cvs2svn.tigris.org/servlets/ProjectDocumentList?folderID=2976 |
| |
| Please note that the cvs2svn project is a *separate* project from |
| Subversion. If you have problems with cvs2svn or are confused, |
| please email the cvs2svn project's mailing lists, not the |
| Subversion lists. |
| |
| Finally, be sure to see Appendix A in the Subversion book. It |
| contains a very quick overview of the major differences between |
| CVS and Subversion. |