This is the top of the Subversion project. *** ASF Migration Revision Offset: 840074 *** (see `REVISIONIST HISTORY' below for an explanation.) WHAT YOU'LL FIND IN HERE ======================== trunk/ ......... The latest development sources. When people say "Get the head of trunk", they mean the latest revision of this directory tree. branches/ ...... Various development branches. Typically a branch contains a complete copy of trunk/, even if the changes are isolated to one subdirectory. Note that branch copies are generally removed after they've been merged back into trunk, so what's in branches/ now does not reflect all the branches that have ever been created. tags/ .......... Snapshots of releases. As a general policy, we don't change these after they're created; if something needs to change, we move it to branches and work on it there. site/ .......... Subversion project website materials. developer-resources/ Miscellaneous things that might (or might not) be of interest to developers. upstream/ ...... Vendor branches of third-party tools used by (and modified for use by) Subversion. svn-logos/ ..... Results of the Subversion 1.0 Logo Contest. EDITING THE HISTORY =================== Subversion's code's history began on March 1, 2000, initially stored in a CVS repository. On August 31, 2001, the code moved to a Subversion repository, without converting history (cvs2svn didn't exist then). In August and December, 2003, the ^/clients tree was pruned from history and split into separate repositories: http://thread.gmane.org/20110816181429.GA14116%40daniel3.local (dev@, August 2011, "Did we have ^/clients?") On March 5, 2008, in the run up to the 1.5.0 release, svn:mergeinfo properties were removed, and svnmerge-integrated properties transformed into svn:mergeinfo properties: http://thread.gmane.org/47CEC9BD.6070205%40collab.net (dev@, March 2008, "[IMPORTANT] The repositories at svn.collab.net have been migrated") In November 2009, Subversion's version control history was migrated into the Apache Software Foundation's unified source code repository. As part of this migration, Subversion's original CVS-based version control history and its Subversion-based history were stitched together. See the following section (`REVISIONIST HISTORY') for details. REVISIONIST HISTORY =================== On November 15, 2009, the version control history of Subversion project moved from its standalone repository on http://svn.collab.net/ and into the Apache Software Foundation's unified source code repository at http://svn.apache.org/. As this was a disruptive migration anyway, the Subversion developers decided to take the opportunity to migrate not just their Subversion version control history, but also the CVS history of the project which covered the time period between the founding of the project and its August 31, 2001 self-hosting milestone. The following describes the process that C. Michael (Mike) Pilato used to stitch those two streams of history together. 1. Using cvs2svn (http://cvs2svn.tigris.org), Mike converted all CVS history to Subversion and deposited it into a temporary repository, 'svn-from-cvs'. 2. Now, the CVS repository data contained some trailing changes that were created after the switch to Subversion back in 2001. Most of those were commits to www/ (which we manually mirrored for a while based on our Subversion commits to trunk/www/). A couple of them were things like system-wide automated tweaks to www/robots.txt made by CollabNet folk. Also, we had real tags and branches in our CVS repos that we didn't bring with us into Subversion. So Mike dumped the first 3654 revisions from 'svn-from-cvs' -- the pre-switchover changes only -- loaded that into the stitch repository, 'svn-complete'. 3. To historically preserve the fact that apparently we didn't care too much about those old CVS tags and branches, Mike committed their deletion from 'svn-complete' (but left the 'branches' and 'tags' top-level directories themselves). 4. Since the first revision of our project's Subversion history (in the 'svn' repository) was a massive import into trunk, that would have clashed mightily being loaded atop already-existing files and directories in 'svn-complete'. So Mike instead checked out svn-complete/trunk@HEAD, then exported svn/trunk@r1 atop it. The local mods were the small delta between what we got outta CVS on August 31, 2001, and what we put into Subversion. They were mostly the result of $Date$ keyword formatting differences. He committed those local mods, which now brought 'svn-complete' into sync with 'svn@r1' *except* that 'svn-complete' still had empty '/tags' and '/branches' directories (which were added in r532 and r1237, respectively). 5. Mike dumped -r2:531 of 'svn', loading the result into 'svn-complete'. 6. Mike skipped r532 (the revision in which we created our 'tags/' directory) from 'svn', instead adding a no-op placeholder revision to 'svn-complete'. 7. Mike dumped -r533:1236 of 'svn', loading the result into 'svn-complete'. 8. Mike skipped r1237 (the revision in which we created our 'branches/' directory) from 'svn', instead adding a no-op placeholder revision to 'svn-complete'. 9. Mike dumped the rest of the 'svn' history (r1238:r40515), loading the result into 'svn-complete'. The result was a single repository of 44170 revisions (3654 from CVS, 40515 from Subversion, and 1 cleanup rev) that contained all of the Subversion project's version control history. The ASF infrastructure team took this repository's data and loaded it into the ASF repository (with external commits disabled to prevent interleaved commit history). Now, at the time that this history was loaded into the ASF repository, that repository already had 836419 revisions in it. The next 3655 revisions represent the Subversion CVS history (plus a fixup revision). This means that any historical references found in Subversion's source code, issue trackers, mailing lists, etc. that refer to pre-migration revisions (which are easy to spot, as they are all quite a bit smaller than 800000!) may be found in the ASF repository by adding 836419 + 3655 = 840074 to the revision number.