
Open Source Development With Cvs
by Bar, Moshe; Fogel, KarlRent Book
New Book
We're Sorry
Sold Out
Used Book
We're Sorry
Sold Out
eBook
We're Sorry
Not Available
How Marketplace Works:
- This item is offered by an independent seller and not shipped from our warehouse
- Item details like edition and cover design may differ from our description; see seller's comments before ordering.
- Sellers much confirm and ship within two business days; otherwise, the order will be cancelled and refunded.
- Marketplace purchases cannot be returned to eCampus.com. Contact the seller directly for inquiries; if no response within two days, contact customer service.
- Additional shipping costs apply to Marketplace purchases. Review shipping costs at checkout.
Summary
Author Biography
Table of Contents
Introduction | p. xvii |
Why Open Source Development and CVS Go Together | p. 1 |
What Is Free Software? | p. 1 |
Open Source Software | p. 2 |
Open Source Licenses | p. 3 |
Open Source Business Models | p. 4 |
How It All Started | p. 5 |
Stallman's Idea | p. 5 |
The Two Types of Development | p. 6 |
What Does CVS Have to Do with It? | p. 7 |
diff and patch | p. 8 |
RCS | p. 9 |
The Winner: CVS | p. 9 |
Principles of Open Source Development and How CVS Helps | p. 10 |
What Makes It All Tick? | p. 12 |
Necessity | p. 12 |
Community | p. 12 |
Glory | p. 13 |
Money | p. 13 |
Factionalism as a Sign of Strength | p. 14 |
An Overview of CVS | p. 17 |
CVS Basics | p. 17 |
What CVS Is Not: The Lock-Modify-Unlock Model | p. 18 |
What CVS Is: The Copy-Modify-Merge Model | p. 18 |
Other Revision Control Systems | p. 21 |
Microsoft VSS | p. 21 |
RCS and GNU/RCS | p. 22 |
SCCS | p. 23 |
A Tour of CVS | p. 24 |
Invoking CVS | p. 25 |
Repository Access and the Working Environment | p. 26 |
Starting a New Project | p. 29 |
Checking Out a Working Copy | p. 31 |
Making a Change | p. 34 |
Finding Out What You (and Others) Did: update and diff | p. 34 |
CVS and Implied Arguments | p. 39 |
Committing | p. 42 |
Finding Out Who Did What (Browsing Log Messages) | p. 50 |
Examining and Reverting Changes | p. 53 |
Other Useful CVS Commands | p. 58 |
Adding Files | p. 58 |
Adding Directories | p. 58 |
Removing Files | p. 60 |
Removing Directories | p. 60 |
Renaming Files and Directories | p. 61 |
Avoiding Option Fatigue | p. 62 |
Getting Snapshots (Dates and Tagging) | p. 62 |
Acceptable Date Formats | p. 66 |
Marking a Moment in Time (Tags) | p. 67 |
Branches | p. 73 |
Merging Changes from Branch to Trunk | p. 79 |
Multiple Merges | p. 82 |
Creating a Tag or Branch without a Working Copy | p. 84 |
CVS Repository Administration | p. 87 |
The Administrator's Role | p. 87 |
Getting and Installing CVS | p. 87 |
Building CVS from Source | p. 88 |
Getting and Installing CVS under Windows | p. 91 |
Getting and Installing CVS on a Macintosh | p. 92 |
Limitations of the Windows and Macintosh Versions | p. 92 |
Anatomy of a CVS Distribution | p. 92 |
Informational Files | p. 92 |
Subdirectories | p. 94 |
Other Sources of Information | p. 96 |
Starting a Repository | p. 97 |
The Password-Authenticating Server | p. 99 |
Repository Structure Explained in Detail | p. 104 |
RCS Format Always Quotes @ Signs | p. 110 |
What Happens When You Remove a File | p. 112 |
The CVSROOT/Administrative Directory | p. 113 |
Finding Out More | p. 124 |
Advanced CVS | p. 125 |
Beyond the Basics | p. 125 |
CVS as Telephone | p. 125 |
Watches: Knowing Who's Working on What, When | p. 125 |
Log Messages and Commit Emails | p. 139 |
Getting Rid of a Working Copy | p. 141 |
A Bird's-Eye View of Project History | p. 142 |
Bird's-Eye View, with Telescope: The annotate Command | p. 145 |
Using Keyword Expansion | p. 150 |
Going out on a Limb: How to Work with Branches and Survive | p. 152 |
Merging Repeatedly into the Trunk | p. 153 |
The Dovetail Approach: Merging in and out of the Trunk | p. 160 |
The Flying Fish Approach: A Simpler Way | p. 162 |
Tracking Third-Party Sources: Vendor Branches | p. 164 |
New CVS Features | p. 168 |
You Are Now a Guru! | p. 169 |
Tips and Troubleshooting | p. 171 |
What to Do When Things Go Wrong | p. 171 |
The Usual Suspects | p. 172 |
The Working Copy Administrative Area | p. 172 |
Repository Permissions | p. 174 |
Common Problems and How to Solve Them | p. 175 |
Some Real-Life Problems, with Solutions | p. 176 |
Things Change | p. 186 |
Building, Testing, and Releasing | p. 187 |
What Good Are Releases? | p. 187 |
Starting the Release Process | p. 188 |
Avoiding the "Code Cram" Effect | p. 189 |
Freezing | p. 190 |
Development vs. Stable Branches | p. 191 |
Testing | p. 192 |
Recruiting and Retaining Testers | p. 193 |
Automated Testing | p. 193 |
Building, Installing, and Packaging | p. 194 |
Building and Installing: make and autoconf | p. 194 |
Let CVS Help You with Packaging | p. 197 |
Releasing | p. 199 |
Telling the World about Changes | p. 200 |
Recording the Release in CVS: Tags and Revision Numbers | p. 200 |
Finding Out More | p. 201 |
System Administration with CVS | p. 203 |
Main Sysadmin Tasks | p. 203 |
Using CVS the Right Way: Versioning | p. 205 |
Dependencies | p. 206 |
The named Tree | p. 207 |
Regression Testing | p. 207 |
Other Sysadmin Work with CVS | p. 208 |
Creating New Targets | p. 208 |
Delegating Responsibility for Files | p. 209 |
When Problems Occur with Hosts | p. 210 |
Administering Routers and Appliances | p. 210 |
Conclusion | p. 211 |
The Open Source Process | p. 213 |
Failure and Success | p. 213 |
Starting a Project | p. 214 |
Release Something Useful | p. 216 |
Packaging | p. 219 |
Announcing the Program | p. 222 |
Running a Project | p. 222 |
Cultivating Technical Judgment | p. 225 |
So, Who Is the Maintainer, Really? | p. 227 |
Rule by Committee | p. 228 |
How to Do a Fork, if You Absolutely Must | p. 230 |
Changing Maintainers | p. 232 |
Stasis | p. 233 |
Knowing What We Don't Know | p. 233 |
Designing for Decentralized Development | p. 235 |
The Importance of Software Design | p. 235 |
Proprietary Software Design vs. Free Software Design | p. 236 |
Cost Issues | p. 237 |
Design Invariants | p. 238 |
Code Design | p. 239 |
The Design Document | p. 239 |
Dividing Code into Files and Directories | p. 240 |
Dividing Code into Modules | p. 241 |
Evolution-Centered Design | p. 243 |
Principles of Free Software Design | p. 244 |
Don't Limit Input | p. 245 |
Use a Consistent Interface | p. 245 |
Document Data Structures | p. 246 |
Make It Portable | p. 247 |
When in Doubt, Abstain | p. 248 |
Third-Party Tools that Work with CVS | p. 249 |
What Are Third-Party Tools? | p. 249 |
pcl-cvs: An Emacs Interface to CVS | p. 249 |
Installing pcl-cvs | p. 250 |
Using pcl-cvs | p. 252 |
Error Handling in pcl-cvs | p. 253 |
cvsutils: General Utilities for Use with CVS | p. 253 |
Cervisia | p. 254 |
cvsu | p. 254 |
cvsdo | p. 255 |
cvschroot | p. 256 |
cvsrmadm | p. 256 |
cvspurge | p. 256 |
cvsdiscard | p. 256 |
cvsco | p. 257 |
cvs2cl.pl: Generate GNU-Style ChangeLogs from CVS Logs | p. 257 |
-h, --help | p. 258 |
-r, --revisions | p. 258 |
-t, --tags | p. 258 |
-b, --branches | p. 258 |
-g OPTS, --global-opts OPTS | p. 258 |
-l OPTS, --log-opts OPTS | p. 259 |
-d, --distributed | p. 259 |
cvslock: Lock Repositories for Atomicity | p. 259 |
Other Packages | p. 261 |
Jalindi Igloo | p. 261 |
CVSUp (Part of the FreeBSD Project) | p. 262 |
CVSWeb: A Web Interface to CVS Repositories | p. 262 |
The CVS contrib/Directory | p. 262 |
Writing Your Own Tools | p. 262 |
Complete CVS Reference | p. 265 |
Organization and Conventions | p. 265 |
Commands | p. 265 |
General Patterns in CVS Commands | p. 266 |
Global Options | p. 267 |
List of Commands | p. 271 |
Keyword Substitution (RCS Keywords) | p. 301 |
Controlling Keyword Expansion | p. 301 |
List of Keywords | p. 302 |
Repository Administrative Files | p. 304 |
Shared Syntax | p. 304 |
List of Repository Administrative Files | p. 305 |
Run Control Files | p. 311 |
Working Copy Files | p. 312 |
Environment Variables | p. 314 |
GNU General Public License | p. 317 |
GNU Free Documentation License | p. 325 |
Bibliography | p. 333 |
Index | p. 335 |
Table of Contents provided by Syndetics. All Rights Reserved. |
An electronic version of this book is available through VitalSource.
This book is viewable on PC, Mac, iPhone, iPad, iPod Touch, and most smartphones.
By purchasing, you will be able to view this book online, as well as download it, for the chosen number of days.
Digital License
You are licensing a digital product for a set duration. Durations are set forth in the product description, with "Lifetime" typically meaning five (5) years of online access and permanent download to a supported device. All licenses are non-transferable.
More details can be found here.
A downloadable version of this book is available through the eCampus Reader or compatible Adobe readers.
Applications are available on iOS, Android, PC, Mac, and Windows Mobile platforms.
Please view the compatibility matrix prior to purchase.