GX Technology : Subversion Repository Structure

Current

  • /
    • branches/
      • sprints/
        • <sprint or build name>/  -- note: all releases for stage/prod come from here
    • tags/
      • x.y.z/
    • trunk/
      • client-src/
        • docs/
        • libs/
        • src/
        • test/
      • client-libs/
      • includes/
      • server/
        • clientAPI/
          • src/
        • cron/
        • database/
        • diagnostics/
        • phpDocumentor/  -- to be removed - install via PEAR on systems needing it
        • scripts/
        • server/
          • src/
        • tests/
          • integeration/
          • unit/
        • tools/

Proposed

  • /
    • branches/
      • branchname
        • client/
        • includes/
        • server/
    • tags/
      • x.y.z/
        • client/
        • includes
        • server/
    • trunk/
      • client/
        • build/
        • contrib/
        • lib/
        • src/
        • test/
      • includes/
      • server/
        • build/
        • db/
          • authentication/
            • 0000.sql -- baseline DB (eg: dump of existing DB, or CREATE DATABASE command)
            • 0001.sql -- delta #1
            • 0002.sql -- delta #2
            • ...
          • mail/
          • support/
          • support_centre/
        • src/
          • api/
          • adapters/
            • account/
            • avatar/
            • financial/
            • flurry/
            • phraseapproval
            • phrasechat/
            • user/
          • cron/
          • diagnostics/
          • lib/
            • languages/
            • queue/
            • service/
            • translation/
            • worlds/
          • services/
        • tests/
          • integration/
          • unit/
        • tools/

Proposed Permissions

Directory

Permissions

Notes

/branches/

Leads=rwd, Devs=rw, Build=r

Only leads can remove a branch, devs can create a branch

/branches/*

Leads=rwd, Devs=rwd, Build=r

Leads and devs have full control over the contents of a branch

/tags/

Leads=rwd, Devs=r, Build=r

Only leads can create or remove tags

/tags/*

Leads=r, Devs=r, Build=r

Contents of a tag are read-only to everyone

/trunk/

Leads=rwd, Devs=rw, Build=r

Only leads can create components at the top-level of trunk

/trunk/*

Leads=rwd, Devs=rwd, Build=r

Leads and devs have full control over the contents of trunk

 

r = read, w = write, d = delete