|Revision as of 00:56, 21 November 2005
Aeruder (Talk | contribs)
adding notes on subversion migration
← Previous diff
Aeruder (Talk | contribs)
|Line 15:||Line 15:|
|Line 48:||Line 49:|
|/modules/dev-libs ( svn:externals mapping to old dev-libs )||/modules/dev-libs ( svn:externals mapping to old dev-libs )|
|/modules/usr-apps ( svn:externals mapping to old usr-apps )||/modules/usr-apps ( svn:externals mapping to old usr-apps )|
|-||/modules/startup ( svn:externals mapping to correct projects )||+|
|+||/tests/test ( this is legacy, and can be deleted after conversion )|
|-||/usr-apps/examples ( shouldn't this be a subdir of gui/? )||+|
|== SVN:Externals ==||== SVN:Externals ==|
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.
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/.
/apps/easydiff /apps/gorm /apps/gsldapwebexplorer /apps/gworkspace /apps/projectcenter /apps/systempreferences /libs/back /libs/base /libs/db /libs/dgs /libs/extensions /libs/gdl2 /libs/gsantlr /libs/gscrypt /libs/gsgd /libs/gsldap /libs/gsweb /libs/gui /libs/guile /libs/java /libs/libobjc /libs/palettes /libs/performance /libs/ppd /libs/renaissance /libs/ruby /libs/smbkit /libs/sqlclient /libs/steptalk /libs/ucsdata /libs/webserver /libs/xdps /libs/xgps /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 ) /tests/examples /tests/gormtest /tests/gtests /tests/palettetest /tests/retaincount /tests/test ( this is legacy, and can be deleted after conversion ) /tests/testsuite /tools/charsets /tools/make /tools/model-main /tools/nfmake /tools/startup
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.