21
TITLE HERE Source Code Management with Subversion 3:55p – 5:10p Christopher Grant [email protected]

Codemash 2007 - Scm with subversion

Embed Size (px)

Citation preview

Page 1: Codemash 2007 - Scm with subversion

TITLE HERESource Code Managementwith Subversion

3:55p – 5:10p

Christopher [email protected]

Page 2: Codemash 2007 - Scm with subversion

Our Sponsors

Page 3: Codemash 2007 - Scm with subversion

Overview

• Enterprise considerations for a SCM• Server and client fundamentals• Demo of Subversion development process• Reporting options

Page 4: Codemash 2007 - Scm with subversion

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

Page 5: Codemash 2007 - Scm with subversion

Enterprise Considerations

• Cost• Maintainability• Support• Security• Integration and Extensibility• Reliability• Process Flexibility and Governance • and of course Auditing

Page 6: Codemash 2007 - Scm with subversion

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

Page 7: Codemash 2007 - Scm with subversion

Features

• Directory & File versioning, • Atomic Commits• Choice of Network Protocol• Consistent data handling,• Efficient Branching and Tagging• Minimized network traffic

Page 8: Codemash 2007 - Scm with subversion

Source: “Version Control with Subversion”, 2006 Ben Collins-Sussman, Brian W. Fitzpatrick, C. Michael Pilato

Subversion Architecture

Page 9: Codemash 2007 - Scm with subversion

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

Page 10: Codemash 2007 - Scm with subversion

Popular Client Apps

• Command Line• Windows: Tortoise• Mac & *nix: SmartSVN, RapidSVN• IDE integration▫ Subclipse for Eclipse▫ AnkhSVN for Vstudio.net

Page 11: Codemash 2007 - Scm with subversion

Other Tools

• ViewVC (aka ViewCVS) Enhanced Web view• Scmbug: Integration with bugzilla• SvnAnt: Ant tasks for subversion• SVK: Decentralized version control built on SVN

Page 12: Codemash 2007 - Scm with subversion

Key concepts

• Development Streams• Branching• Checkout• Committing the working set• Updating and resolving conflicts• Merges

Page 13: Codemash 2007 - Scm with subversion

Development Streams

Bran

ches

Trun

kTa

gs

Enhancement A

Enhancement B

Bran

ch

Bran

ch

MergeMerge

Rel 2.3

Page 14: Codemash 2007 - Scm with subversion

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

Page 15: Codemash 2007 - Scm with subversion

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

Page 16: Codemash 2007 - Scm with subversion

Demo

• Create Project• Check out• Update & Resolve Conflicts• Check in• Merge Project

Page 17: Codemash 2007 - Scm with subversion

Reporting

• Basic reporting: History, Diff, Blame• Using tools for additional information:▫ SVNStat▫ SVNReport ▫ others

Page 18: Codemash 2007 - Scm with subversion

Support and Training

• CollabNet offers many services including:▫ Subversion Hosting▫ Developer Training▫ Support Packages

Page 19: Codemash 2007 - Scm with subversion

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

Page 20: Codemash 2007 - Scm with subversion

Our Sponsors

Page 21: Codemash 2007 - Scm with subversion

Thank you!

Fill out your survey!

Blog about it!

Talk about it!

Visit Google Group!