Subversion Migration

From GNUstepWiki

(Difference between revisions)
Revision as of 00:56, 21 November 2005
Aeruder (Talk | contribs)
adding notes on subversion migration
← Previous diff
Revision as of 08:12, 15 January 2006
Aeruder (Talk | contribs)
Proposed Layout
Next diff →
Line 15: Line 15:
/apps/gworkspace /apps/gworkspace
/apps/projectcenter /apps/projectcenter
 + /apps/systempreferences
/libs/back /libs/back
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/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/charsets
/tools/make /tools/make
 + /tools/model-main
/tools/nfmake /tools/nfmake
- + /tools/startup
-Unaccounted for:+
- +
- /dev-apps/model-main+
- /dev-apps/test+
- /usr-apps/examples ( shouldn't this be a subdir of gui/? )+
== SVN:Externals == == SVN:Externals ==

Revision as of 08:12, 15 January 2006

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/.

/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

SVN:Externals

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.