CSC/Sun CCS Subversion tutorial Tim Howe Overview of Subversion
CSC/Sun CCS Subversion tutorial Tim Howe
Development benefits Collaboration benefits...
CSC/Sun CCS Subversion tutorial Tim Howe Overview of Subversion
CSC/Sun CCS Subversion tutorial Tim Howe
Development benefits Collaboration benefits Quirks Working with Subversion
Our Setup Server Tools Repository Integration
Workflow
May 28, 2008
Keeping up to date Creating codebase Creating project Committing changes Creating a release Closing down
What is Subversion?
CSC/Sun CCS Subversion tutorial Tim Howe Overview of Subversion Development benefits Collaboration benefits Quirks Working with Subversion
Our Setup
I
version control system
I
“new and improved” CVS (not vastly different)
Server Tools Repository Integration
Workflow Keeping up to date Creating codebase Creating project Committing changes Creating a release Closing down
Generic SCM benefits to development
CSC/Sun CCS Subversion tutorial Tim Howe Overview of Subversion
SCM Software Configuration Management
Development benefits Collaboration benefits Quirks Working with Subversion
Our Setup
I
track changes between versions
I
audit ownership of code (can relate to Sarbanes-Oxley requirements)
I
when performed correctly: track test results, supported systems, etc.
I
repeatability, shared development
Server Tools Repository Integration
Workflow Keeping up to date Creating codebase Creating project Committing changes Creating a release Closing down
Subversion-specific benefits to development
CSC/Sun CCS Subversion tutorial Tim Howe Overview of Subversion Development benefits Collaboration benefits Quirks Working with Subversion
Our Setup
I
cheap branching
I
based on HTTP, WebDAV
I
local mirror
Server Tools Repository Integration
Workflow Keeping up to date Creating codebase Creating project Committing changes Creating a release Closing down
Collaboration benefits
CSC/Sun CCS Subversion tutorial Tim Howe Overview of Subversion Development benefits Collaboration benefits Quirks Working with Subversion
Our Setup
I
everyone has working copy
I
cross-platform
I
easy Web access to files
Server Tools Repository Integration
Workflow Keeping up to date Creating codebase Creating project Committing changes Creating a release Closing down
Quirks of Subversion
CSC/Sun CCS Subversion tutorial Tim Howe Overview of Subversion Development benefits Collaboration benefits Quirks Working with Subversion
Our Setup
I
“branches” and “tags” are arbitrary
I
locking discouraged
Server Tools Repository Integration
Workflow Keeping up to date Creating codebase Creating project Committing changes Creating a release Closing down
Subversion workflow overview
CSC/Sun CCS Subversion tutorial Tim Howe Overview of Subversion
1. import initial version (can be skeleton) into repository 2. check out working copy 3. make all changes in working copy 4. update working copy with all changes from others, ensure everything still works 5. commit working copy to repository 6. rinse and repeat from step #2 (can be done concurrently and asynchronously by many developers)
Development benefits Collaboration benefits Quirks Working with Subversion
Our Setup Server Tools Repository Integration
Workflow Keeping up to date Creating codebase Creating project Committing changes Creating a release Closing down
Subversion commands
CSC/Sun CCS Subversion tutorial Tim Howe
svn import import a file/directory tree into repository svn checkout check out a tree from the repository svn update get changes from repository svn status show any local changes since last commit svn diff get diff of local changes since last commit svn add schedule a new file to be entered into the repository at commit svn mkdir create a directory in the working copy svn mv rename a file or move it in the working copy svn rm delete a file from the working copy svn commit commit all changes from working copy
Overview of Subversion Development benefits Collaboration benefits Quirks Working with Subversion
Our Setup Server Tools Repository Integration
Workflow Keeping up to date Creating codebase Creating project Committing changes Creating a release Closing down
Server
CSC/Sun CCS Subversion tutorial Tim Howe Overview of Subversion Development benefits Collaboration benefits Quirks Working with Subversion
Our Setup
I
Hosted on rattrap.sfbay
I
Canonical hostname is csc-ccs-svn.sfbay
I
Access control in /mnt/web/svn/{htpasswd,access}
Server Tools Repository Integration
Workflow Keeping up to date Creating codebase Creating project Committing changes Creating a release Closing down
Custom Tools
CSC/Sun CCS Subversion tutorial Tim Howe Overview of Subversion
TaskMaster Java app to manage active projects http://csc-ccs-svn.sfbay/ I manages a local mirror of all active projects I project creation I codebase creation I branch management I create dependency of project on codebase
Development benefits Collaboration benefits Quirks Working with Subversion
Our Setup Server Tools Repository Integration
Workflow Keeping up to date Creating codebase Creating project Committing changes Creating a release Closing down
Repository access
CSC/Sun CCS Subversion tutorial Tim Howe Overview of Subversion
http://csc-ccs-svn.sfbay.sun.com/svn/ I I
HTTP authentication required access via: I I I I I
Web browser ViewSVN Web interface command-line svn client TortoiseSVN for Windows TaskMaster
Development benefits Collaboration benefits Quirks Working with Subversion
Our Setup Server Tools Repository Integration
Workflow Keeping up to date Creating codebase Creating project Committing changes Creating a release Closing down
Repository layout
CSC/Sun CCS Subversion tutorial Tim Howe Overview of Subversion Development benefits Collaboration benefits Quirks Working with Subversion
Our Setup
util Utilities for interacting with this repository codebase Storage of all branches of each codebase (e.g., firefox, thunderbird, nct) work Individual projects (SR1234567 )
Server Tools Repository Integration
Workflow Keeping up to date Creating codebase Creating project Committing changes Creating a release Closing down