Upload
christopher-grant
View
303
Download
0
Embed Size (px)
Citation preview
Our Sponsors
Overview
• Enterprise considerations for a SCM• Server and client fundamentals• Demo of Subversion development process• Reporting options
Subversion• Subversion is a Source Code Management system
initiated in 2000 by CollabNet to create a new SCM fixing flaws in CVS
• Subversion is gaining ground as the preferred solution in use on over 56,000 publicly accessible production servers and many more behind firewalls.
• Currently used by high profile projects such as Google Code and the Apache Foundation Project.
Source: “Version Control with Subversion”, 2006 Ben Collins-Sussman, Brian W. Fitzpatrick, C. Michael Pilato
Enterprise Considerations
• Cost• Maintainability• Support• Security• Integration and Extensibility• Reliability• Process Flexibility and Governance • and of course Auditing
Subversion in the Enterprise• Free, Open Source, Apache/BSD-style License• Wide variety of administrative tools• Support from User Communities or Fee Based from
Collabnet• Network and Auth Security Options• Support for many languages and platforms• Significant increases in scalability, reliability and
performance• Hooks provide access to customize and enforce
business processes• No actual deletes and variety of reporting options
ensure quality audits and accountability
Features
• Directory & File versioning, • Atomic Commits• Choice of Network Protocol• Consistent data handling,• Efficient Branching and Tagging• Minimized network traffic
Source: “Version Control with Subversion”, 2006 Ben Collins-Sussman, Brian W. Fitzpatrick, C. Michael Pilato
Subversion Architecture
The Server• Install via binaries or manual compile• Network Access: Local, Dav (http, https), SVN,
SVN+SSH • Security options: basic flat file through integration with
Active Directory• Network: Passing Deltas, SSL compression• Hooks: Fully scriptable
•pre-commit•pre-revprop-change•post-revprop-change•start-commit•pre-lock
•post-commit•pre-unlock•post-lock•post-unlock
Popular Client Apps
• Command Line• Windows: Tortoise• Mac & *nix: SmartSVN, RapidSVN• IDE integration▫ Subclipse for Eclipse▫ AnkhSVN for Vstudio.net
Other Tools
• ViewVC (aka ViewCVS) Enhanced Web view• Scmbug: Integration with bugzilla• SvnAnt: Ant tasks for subversion• SVK: Decentralized version control built on SVN
Key concepts
• Development Streams• Branching• Checkout• Committing the working set• Updating and resolving conflicts• Merges
Development Streams
Bran
ches
Trun
kTa
gs
Enhancement A
Enhancement B
Bran
ch
Bran
ch
MergeMerge
Rel 2.3
The process
• Non locking model (copy, modify, merge)▫ Checkoutworking copy from the repository▫ Modify files locally▫ Update local from branch� Resolve any conflicts▫ Commit changes into repository
Development ProcessEnhancement A Branch
Rep
osito
ryLo
cal W
orki
ng C
opy
Chec
kout
Modify
Upd
ate
Resolve
Com
mit
Resolve
Com
mit
Chec
kout
Upd
ate
ModifyDeveloper 1
Developer 2
Demo
• Create Project• Check out• Update & Resolve Conflicts• Check in• Merge Project
Reporting
• Basic reporting: History, Diff, Blame• Using tools for additional information:▫ SVNStat▫ SVNReport ▫ others
Support and Training
• CollabNet offers many services including:▫ Subversion Hosting▫ Developer Training▫ Support Packages
Resources
• Subversion Home: http://subversion.tigris.org• Tortoise Client: http://tortoisesvn.tigris.org• Subclipse Plugin: http://subclipse.tigris.org• Subversion Book: http://svnbook.red-bean.com• Subversion Crash Course:
http://www.developer.com/java/other/article.php/3499816
• CollabNet: http://www.collab.net
Our Sponsors
Thank you!
Fill out your survey!
Blog about it!
Talk about it!
Visit Google Group!