31319112ba01f25c46158ce87d25e9e3f365304b
[swc-version-control-svn.git] / version-control / svn / README.md
1 In addition to the generic version control objectives and points.
2
3 Basic use
4 =========
5
6 Learning objectives
7 -------------------
8
9 * Explain why working copies of different projects should not overlap.
10
11 Key points
12 ----------
13
14 * The master copy is stored in a repository.
15 * Nobody ever edits the master directory: instead, each person edits a
16   local working copy.
17 * The basic workflow for version control is update-change-commit.
18 * `svn add <em>things</em>` tells Subversion to start managing
19   particular files or directories.
20 * `svn checkout $URL` checks out a working copy of a repository.
21 * `svn commit -m "$MESSAGE" $THINGS` sends changes to the repository.
22 * `svn diff` compares the current state of a working copy to the state
23   after the most recent update.
24 * `svn diff -r HEAD` compares the current state of a working copy to
25   the state of the master copy.
26 * `svn history` shows the history of a working copy.
27 * `svn status` shows the status of a working copy.
28 * `svn update` updates a working copy from the repository.
29
30 Merging conflicts
31 =================
32
33 Learning objectives
34 -------------------
35
36 * Identify the auxiliary files created when a conflict occurs.
37
38 Key points
39 ----------
40
41 * For each conflicted file, Subversion creates auxiliary files
42   containing the common parent, the master version, and the local
43   version.
44 * `svn resolve $FILES` tells Subversion that conflicts have been
45   resolved.
46
47 Recovering old versions
48 =======================
49
50 Key points
51 ----------
52
53 * Old versions of files can be recovered by merging their old state
54   with their current state.
55 * Recovering an old version of a file does not erase the intervening
56   changes.
57 * `svn revert` undoes local changes to files.
58 * `svn merge` merges two revisions of a file.
59
60 Setting up a repository
61 =======================
62
63 Key points
64 ----------
65
66 * `svnadmin create $NAME` creates a new repository.
67
68 Provenance
69 ==========
70
71 Key points
72 ----------
73
74 * `$Keyword: …$` in a file can be filled in with a property value each
75   time the file is committed.
76 * `svn propset svn:keywords $PROPERTY $FILES` tells Subversion to
77   start filling in property values.