Using Properties Configuring the Client Integrating with Other Tools Organizing Your Repository Administrating the Repository 137

“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