| Also, we have two options regarding CVS users: place "side" boxes |
| throughout the text, explaining how things are different, whenever |
| necessary. An alternative is to place all of the information into one |
| appendix, and have our side-boxes simply point to relevant sections. |
| That's what I'm assuming for now, because I think we all liked that |
| better. |
| |
| 0. Preface |
| |
| A. Version control |
| B. Target audience |
| C. How the Book is Organized |
| D. Typographic conventions |
| E. Comments/Questions/Obtaining the Free Book |
| F. Acknowledgements |
| |
| I. Introduction |
| |
| A. What is Subversion? |
| B. History of Subversion |
| C. Subversion's Features |
| D. The components (a table listing svn, svnadmin, svnlook, etc.) |
| E. How to get binaries |
| |
| II. Basic Concepts |
| |
| (This is the conversational introduction-by-example, explaining the |
| copy-modify-merge model, working copy vs. repository, |
| transactions, revision numbers, etc. Jimb wrote the original |
| text, and it's evolved some, but I'm absolutely in love with it.) |
| |
| |
| III. Guided Tour |
| |
| (Full walkthrough of the most common commands you would use on a |
| typical day with Subversion, probably in this order:) |
| |
| 1. svn help |
| 2. cross-ref to 'how to import' |
| 3. initial checkout |
| 4. basic workcycle: |
| a. svn update |
| b. make changes: edit directly, svn add, rm, cp, mv |
| c. examine changes: svn status, info, diff, revert |
| d. resolve conflicts: svn up, resolved |
| e. svn commit |
| 5. examining history: svn log, diff |
| |
| |
| IV. Branching and Merging |
| |
| (Detailed discussion of how branches and tags work via "copies". |
| Use lots of examples: introduce {copy, mkdir, merge, switch}.) |
| |
| Opening explanation of what branches are, how they're used. |
| (Ben has a great explanation for this.) |
| |
| A. Creating branches (svn cp) |
| |
| B. Porting changes (svn merge) |
| |
| C. Removing changes (svn merge) |
| |
| D. Branch maintentance (layout, svn mv, svn rm) |
| |
| E. "Advanced shortcuts": switching to a Branch with svn switch. |
| Show clever use-cases in here too. (Ben has some examples.) |
| |
| |
| V. Repository Administration |
| |
| A. Repository creation and configuration |
| |
| 1. creating a repository |
| 2. repository hooks |
| - example hooks |
| - testing your hooks by hand |
| 3. DB_CONFIG file |
| |
| B. Repository maintenance |
| |
| 1. examining a repository (svnlook, shell) |
| 2. maintaining a repository (svnadmin, svnadmin recover, backup options) |
| 3. migrating a repository (dump/load) |
| 4. repository backup (tools and philosophy) |
| |
| C. Networking your repository (apache setup, auth options) |
| |
| 1. apache setup |
| 2. auth options |
| 3. common mistakes |
| - perms on repos/dav |
| - perms after svnadmin recover |
| - passing URLs to svnadmin/svnlook |
| - hand-editing the 'format' file |
| |
| D. Adding Projects |
| |
| 1. repos layout |
| 2. import vs. add vs. mkdir |
| |
| |
| VI. Advanced Topics |
| |
| A. Run-time configuration area (config, proxies, etc.) [2.9] |
| |
| B. Properties |
| |
| 1. General use (pset, pget, plist, pdel, pedit), including -r switch. |
| 2. EOL translation |
| 3. Keyword substitution |
| 4. Other special keywords (executable, mime-type, ignore) |
| |
| C. Modules [2.6] |
| |
| D. Vendor branches (strategies and svn_load_dirs.pl) |
| |
| E. Fine-grained access control (demonstrating how to use our hook scripts) |
| |
| |
| VII. Developer Information |
| |
| A. Layered library design [1.2] |
| |
| B. Using the APIs |
| (C and python examples) |
| |
| C. Inside the working copy and repository [3.0 ?] |
| (discussion of interior structures) |
| |
| D. Use of WebDAV [3.7, plus gstein's notes] |
| |
| E. Contributing to Subversion |
| (how to reproduce/report bugs, send patches, overview of code layout.) |
| |
| |
| VIII. Complete Reference |
| |
| (The part of the manual that will have grey borders and be most |
| thumbed through. :-) ) |
| |
| |
| IX. Appendices |
| |
| A. SVN for CVS Users [5.1] |
| (the appendix which CVS users can read in one sitting, to get |
| a quick conceptual 'diff' between the two systems) |
| |
| B. CVS repository migration |
| (cvs2svn.py) |
| |
| C. Troubleshooting |
| (how to save your working copy, svn cleanup, etc.) |
| |
| D. FAQ? |
| |
| E. Other clients |
| (description of GUIs?) |
| |
| F. Third-party tools |
| (describe what exists) |
| |
| G. Index |