“svnbook” — 2005414 — 14:55 — page ix — 8 ✐
✐ ✐
✐ ✐
✐ ✐
Contents
ix
4.9 Merging a Branch
46 4.10 Handling Conflicts
48 4.11 Summary
51
Part II Subversion from a Client User’s Perspective
53
Chapter 5 Working with a Working Copy
55
5.1 The Subversion Client
55 5.1.1
Common Command Options 56
5.1.2 Paths
57 5.2
Checking Out and Maintaining a Working Copy 57
5.2.1 Keeping Up-to-Date
59 5.3
Modifying and Committing Data 61
5.3.1 Adding New Files
63 5.3.2
Removing Files 64
5.3.3 Moving Things Around
65 5.4
Getting Information about the Repository 67
5.4.1 Getting Information on the Current State
67 5.4.2
Getting the Repository’s History 72
5.5 Changing the Working Copy Target
76 5.6
Resolving Conflicts 76
5.7 Branching, Tagging, and Merging
78 5.7.1
Creating a Branch or Tag 78
5.7.2 Merging a Branch
80 5.8
Troubleshooting the Working Copy 82
5.9 Summary
83
Chapter 6 Using Properties
85
6.1 Storing Metadata
85 6.1.1
Editing Properties 86
6.1.2 Automatically Setting Properties
86 6.1.3
Committing Properties 87
6.1.4 Storing Revision Properties
87 6.2
Retrieving Metadata 87
6.2.1 Listing Properties
88 6.2.2
Outputting Multiple Binary Properties 89
6.2.3 Getting Revision Properties
89
“svnbook” — 2005414 — 14:55 — page x — 9 ✐
✐ ✐
✐ ✐
✐ ✐
x
Contents
6.3 Built-in Properties
90 6.3.1
File Properties 90
6.3.2 Revision Properties
95 6.4
Summary 96
Chapter 7 Configuring the Client
97
7.1 Finding the Configuration Files
97 7.2
Editing the Configuration Files 97
7.2.1 The config File
98 7.2.2
The servers File 101
7.3 Summary
104
Chapter 8 Integrating with Other Tools
105
8.1 Accessing SVN through a GUI Client
105 8.1.1
RapidSVN 105
8.1.2 TortoiseSVN
107 8.1.3
ViewCVS 108
8.1.4 WebSVN
110 8.2
Accessing Directly from an IDE 111
8.2.1 Visual Studio.Net
111 8.2.2
Eclipse 112
8.3 Using Autoversioning with WebDAV
114 8.4
Summary 116
Part III Subversion from an Administrator’s Perspective
117
Chapter 9 Organizing Your Repository
119
9.1 Laying Out the Repository
119 9.1.1
The Two Basic Layouts 119
9.1.2 Organizing the Trunk
121 9.1.3
Organizing Branches 122
9.1.4 Organizing Tags
124 9.2
Planning for Growth 126
9.2.1 Merging and Splitting a Repository
127 9.3
Migrating an Existing Repository 129
9.3.1 The Basic Migration Process
130 9.3.2
Migrating from CVS 130
“svnbook” — 2005414 — 14:55 — page xi — 10 ✐
✐ ✐
✐ ✐
✐ ✐
Contents
xi
9.3.3 Migrating from SourceSafe
133 9.3.4
Migrating from Other VCSs 134
9.3.5 What If There’s No Migration Tool?
134 9.4
Summary 136
Chapter 10 Administrating the Repository 137
10.1 Controlling Access to the Repository 137
10.1.1 Direct Access Control 138
10.1.2 svnserve Access Control 138
10.1.3 HTTPHTTPS Access Control 140
10.1.4 Authenticating against a Windows Domain Controller 146
10.2 Backing Up the Repository 149
10.2.1 Hotcopying the Repository 149
10.2.2 Dumping the Repository 150
10.2.3 Automating Your Backups 151
10.2.4 Recovering 153
10.3 Unwedging Your Repository 154
10.4 Upgrading Subversion 156
10.5 Summary 156
Chapter 11 The Joy of Automation 159