codemash 2007 - scm with subversion

Post on 12-Apr-2017

303 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

TITLE HERESource Code Managementwith Subversion

3:55p – 5:10p

Christopher Grantgrant.chris@yahoo.com

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!

top related