Subversion Migration

From GNUstepWiki

(Difference between revisions)

Revision as of 00:56, 21 November 2005

Subversion Documentation

Subversion is quick to learn coming from CVS, but there are differences. Below are links to help people learn subversion and understand how it differs from CVS.

Proposed Layout

The following directories will be the toplevel layout of the individual "repositories". Under each of these directories there will be at least three top-level directories: tags/, branches/, and trunk/.



/modules/dev-apps ( svn:externals mapping to old dev-apps )
/modules/core     ( svn:externals mapping to old core )
/modules/dev-libs ( svn:externals mapping to old dev-libs )
/modules/usr-apps ( svn:externals mapping to old usr-apps )
/modules/startup  ( svn:externals mapping to correct projects )


Unaccounted for:

/usr-apps/examples ( shouldn't this be a subdir of gui/? )


Subversion includes a nifty feature called externals. What this enables you to do is specify metadata on a directory such that when it is checked out it will check out any other subversion repository into a subdirectory (and you can specify a certain revision if you like). This means you can set up a /modules/core which checks out /libs/gui/trunk /libs/base/trunk /libs/back/trunk and /tools/make/trunk into the subdirectories gui, base, back, and make respectively. Projects like Startup would also benefit immensely from this feature while keeping a clean separation between all different actual projects.

The Subversion book has a chapter on this feature here.