$FreeBSD$ Repository root is: http://svn.freebsd.org/viewvc/base/ (browser, like cvsweb) http://svn.freebsd.org/base/ (readonly, DAV server) svn+ssh://repo.freebsd.org/base/ (committer access) Key locations: head/ - equivalent of cvs HEAD revision. Exported to cvs. stable/ - where the xxx-stable branches live. release/ - where release branches live releng/ - where release engineering happens user/$user/ - semi-private per-developer area projects/ - public long-term side development projects vendor/ - origin tree for vendor imports vendor-crypto/ - import area for code with export restrictions vendor-sys/ - import area for the kernel cvs2svn/ - unclassified stuff / leftovers for deleting. Basic branch strategy: head/ is the mainline, or current. head/ is branched/copied into stable/X. This is what will become the -stable branch. eg: stable/8 -> RELENG_8. Exported. stable/X is branched/copied into releng/X.Y. This is the release engineering branch, becoming errata/security/patch branch. eg: releng/8.0 -> RELENG_8_0. Exported. releng/X.Y.Z is branched to release/X.Y.Z. This is a release tag. Manual cvs operations are required to set tag. eg: release/8.0.0 -> RELENG_8_0_0_RELEASE. Not exported. vendor/${acme}/dist vendor import area. Copied/branched into head/. /dist is the current release, without freebsd mods. vendor/${acme}/dist is 'tagged' via copies to vendor/{$acme}/${release} Vendor layout: vendor/$vendor - roots for a given vendor import vendor/$vendor/dist - staging area for importes to head/ and branches vendor/$vendor/$tag1 - location of import of version $tag1 vendor/$vendor/$tag2 - .. .. vendor/$vendor/$tagN - .. for each import