Synopses & Reviews
In any software development project, many developers contribute changes over a period of time. Using a version control system to track and manage these changes is vital to the continued success of the project. This book introduces you to Subversion, a free, open-source version control system, which is both more powerful and much less complex than its predecessor CVS.
In this practical, hands-on guide, you will learn how to use Subversion and how to effectively merge a version control system within your development process. As a seasoned Subversion user, William Nagel draws on lessons learned through trial and error, providing useful tips for accomplishing tasks that arise in day-to-day software development. Nagel clearly explains how to expand on the built-in abilities of Subversion, making the system work better for you. He organizes Subversion commands by activity to allow for quick task reference. Using example scripts and configurations, he also includes development approaches that you can customize to fit your own environment.
Inside, you will findA guide to installing Subversion on Linux, Windows, and Mac OS X.A tutorial walkthrough of Subversion, from creating your first repository to basic branching and merging. A detailed look at the most important Subversion client commands, as well as properties, user configuration, and integration with a variety of external tools. A guide to repository administration and organization, including repository security and migration from another version control system. An in-depth look at automation in Subversion, including using hook scripts, metadata, and the Subversion API, plus example scripts. Case studies that examine botharchetypal and real-world projects and their use of Subversion. A Subversion command reference for fast access to essential technical information. Details on Subversion's many advanced features, such as its Apache-integrated WebDAV server and database file storage system.
Whether you
Synopsis
In any sofware development project, many developers contribute changes over a period of time. Using a version control system to track and manage these changes is vital to the continued success of the project. This book introduces you to Subversion, a free, open-source version control system, which is both more powerful and much less complex than its predecessor CVS.
In this practical, hands-on guide, you will learn how to use Subversion and how to effectively merge a version control system within your development process. As a seasoned Subversion user, William Nagel draws on lessons learned through trial and error, providing useful tips for accomplishing tasks that arise in day-to-day software development. Nagel clearly explains how to expand on the built-in abilities of Subversion, making the system work better for you. He organizes Subversion commands by activity to allow for quick task reference. Using example scripts and configurations, he also includes development approaches that you can customize to fit your own environment.
About the Author
William Nagel is the chief software engineer for Stage Logic, LLC, a small technology development company, where he splits his time between designing real-time middleware systems and seeking new ways to improve and streamline Stage Logic's development process. After suffering one too many frustrations with CVS, he spearheaded the company's early adoption of Subversion.
Table of Contents
Preface xvii
Acknowledgments xxi
Part I: An Introduction to Version Control and Subversion 1
Chapter 1: An Introduction to Version Control 3
1.1 What Is Version Control? 4
1.2 Why Use It? 4
1.3 The Elements of Version Control 7
1.4 Summary 12
Chapter 2: An Introduction to Subversion 15
2.1 Why Subversion? 15
2.2 Limitations of Subversion 21
2.3 Summary 23
Chapter 3: Installing Subversion 25
3.1 Installing on Linux 25
3.2 Installing on Mac OS X 29
3.3 Installing on Windows 30
3.4 Configuring SVN to Use Apache 31
3.5 Configuring to Use Svnserve 34
3.6 Summary 36
Chapter 4: Basic Subversion Usage 37
4.1 Creating the Repository 37
4.2 Getting Files into the Repository 38
4.3 Creating a Working Copy 40
4.4 Editing Files 40
4.5 Committing Changes 42
4.6 Viewing the Logs 42
4.7 Creating a Tag 43
4.8 Creating a Branch 44
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.2 Checking Out and Maintaining a Working Copy 57
5.3 Modifying and Committing Data 61
5.4 Getting Information about the Repository 67
5.5 Changing the Working Copy Target 76
5.6 Resolving Conflicts 76
5.7 Branching, Tagging, and Merging 78
5.8 Troubleshooting the Working Copy 82
5.9 Summary 83
Chapter 6: Using Properties 85
6.1 Storing Metadata 85
6.2 Retrieving Metadata 87
6.3 Built-in Properties 90
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.3 Summary 104
Chapter 8: Integrating with Other Tools 105
8.1 Accessing SVN through a GUI Client 105
8.2 Accessing Directly from an IDE 111
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.2 Planning for Growth 126
9.3 Migrating an Existing Repository 129
9.4 Summary 136
Chapter 10: Administrating the Repository 137
10.1 Controlling Access to the Repository 137
10.2 Backing Up the Repository 149
10.3 Unwedging Your Repository 154
10.4 Upgrading Subversion 156
10.5 Summary 156
Chapter 11: The Joy of Automation 159
11.1 An Introduction to Hooks 160
11.2 Making the Most of Hook Scripts 167
11.3 Taking Advantage of Metadata 191
11.4 The Subversion API 198
11.5 Summary 206
Part IV: The Software Development Process 207
Chapter 12: Development Process Policies 209
12.1 Effective Branching and Tagging 209
12.2 Checking In Code 217
12.3 Log Data 219
12.4 Project Builds 223
12.5 Testing and Quality Assurance 227
12.6 Communication 230
12.7 Enforcing Policies 232
12.8 Summary 233
Chapter 13: Integrating SVN with the Development Process 235
13.1 SVN in Different Developers' Workflows 235
13.2 Using SVN in Peer Reviews 240
13.3 Tying Revisions to Issue Tracking 246
13.4 Summary 249
Chapter 14: Case Studies in Development Processes 251
14.1 Archetypal Studies 251
14.2 Real-world Studies 260
Part V: Reference 271
Chapter 15: Command Reference 273
15.1 svn
273
15.2 svnadmin
308
15.3 svnlook
314
15.4 svnversion
320
15.5 svndumpfilter
321
Index 325