blob: b20cd2b3b644e70b816cc8b32e7841f36dbc656c [file] [log] [blame]
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.