Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Codemash - SCM with Subversion

Codemash - SCM with Subversion

Avatar for Christopher Grant

Christopher Grant

January 27, 2007
Tweet

More Decks by Christopher Grant

Other Decks in Programming

Transcript

  1. Overview • Enterprise considerations for a SCM • Server and

    client fundamentals • Demo of Subversion development process • Reporting options
  2. 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
  3. Enterprise Considerations • Cost • Maintainability • Support • Security

    • Integration and Extensibility • Reliability • Process Flexibility and Governance • and of course Auditing
  4. 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
  5. Features • Directory & File versioning, • Atomic Commits •

    Choice of Network Protocol • Consistent data handling, • Efficient Branching and Tagging • Minimized network traffic
  6. Source: “Version Control with Subversion”, 2006 Ben Collins-Sussman, Brian W.

    Fitzpatrick, C. Michael Pilato Subversion Architecture
  7. 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
  8. Popular Client Apps • Command Line • Windows: Tortoise •

    Mac & *nix: SmartSVN, RapidSVN • IDE integration ▫ Subclipse for Eclipse ▫ AnkhSVN for Vstudio.net
  9. Other Tools • ViewVC (aka ViewCVS) Enhanced Web view •

    Scmbug: Integration with bugzilla • SvnAnt: Ant tasks for subversion • SVK: Decentralized version control built on SVN
  10. Key concepts • Development Streams • Branching • Checkout •

    Committing the working set • Updating and resolving conflicts • Merges
  11. The process • Non locking model (copy, modify, merge) ▫

    Checkout working copy from the repository ▫ Modify files locally ▫ Update local from branch – Resolve any conflicts ▫ Commit changes into repository
  12. Development Process Enhancement A Branch Repository Local Working Copy Checkout

    Modify Update Resolve Commit Resolve Commit Checkout Update Modify Developer 1 Developer 2
  13. Demo • Create Project • Check out • Update &

    Resolve Conflicts • Check in • Merge Project
  14. Reporting • Basic reporting: History, Diff, Blame • Using tools

    for additional information: ▫ SVNStat ▫ SVNReport ▫ others
  15. Support and Training • CollabNet offers many services including: ▫

    Subversion Hosting ▫ Developer Training ▫ Support Packages
  16. 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.p hp/3499816 • CollabNet: http://www.collab.net