56

Subversion Best Practices

Embed Size (px)

DESCRIPTION

Some useful best practices for subversion revision control

Citation preview

Page 1: Subversion Best Practices
Page 2: Subversion Best Practices

4

Page 3: Subversion Best Practices

Imports

Page 4: Subversion Best Practices

top skimmingvs

cvs2svn

Page 5: Subversion Best Practices

One project at a time

Page 6: Subversion Best Practices

repo/project/

trunk/

branches/

tags/

Page 7: Subversion Best Practices

http://cvs2svn.tigris.org/cvs2svn.html

Page 8: Subversion Best Practices

Tags and Branching

Page 9: Subversion Best Practices

Don’t be afraid

Page 10: Subversion Best Practices

TAGS

Symbolic namingfor groups of files

Page 11: Subversion Best Practices

Snapshot

Page 12: Subversion Best Practices

Mixed revisions

Page 13: Subversion Best Practices

Don’t commit to tags

Page 14: Subversion Best Practices

BRANCHES

Page 15: Subversion Best Practices

Repository forks

Page 16: Subversion Best Practices

Trunk

Branch

Page 17: Subversion Best Practices

Contain independent changes

Page 18: Subversion Best Practices

Parallel commits

Page 19: Subversion Best Practices

Generating releasesand

space to experiement

Page 20: Subversion Best Practices

Trunk stays stable

Page 21: Subversion Best Practices

Each release is on a branch

Page 22: Subversion Best Practices

Release points are tagged

Page 23: Subversion Best Practices

Branch and tag when appropriate

Page 24: Subversion Best Practices

Quick example

Page 25: Subversion Best Practices

Creating a release branch

Page 26: Subversion Best Practices

svn mkdir -m ‘Created branches directory’ svn://repo/svn/project/branches

Page 27: Subversion Best Practices

svn mkdir -m ‘Created branches directory’ svn://repo/svn/project/branches

svn copy -m ‘Creating release branch 1.0’ svn://repo/svn/project/trunk svn://repo/svn/project/branches/RB-1.0

Page 28: Subversion Best Practices

Checkout release branch to local working copy

Page 29: Subversion Best Practices

svn co svn://svn/rep/branches/RB-1.0 rb1.0

Page 30: Subversion Best Practices

Switch working copy

Page 31: Subversion Best Practices

svn switch svn://svn/rep/branches/RB-1.0

Page 32: Subversion Best Practices

Some time passes...

Page 33: Subversion Best Practices

Generate a release

Page 34: Subversion Best Practices

Tag correct files in correct branch

Hopefully the latest release branch

Page 35: Subversion Best Practices

svn mkdir -m ‘Created tags directory’ svn://repo/svn/project/tags

svn copy -m ‘Tagging release 1.0.0’ svn://repo/svn/project/branches/RB-1.0 svn://repo/svn/project/rags/REL-1.0.0

Page 36: Subversion Best Practices

Check out a tagged release

Page 37: Subversion Best Practices

svn co svn://svn/rep/tags/REL-1.0.0

Page 38: Subversion Best Practices

Merging

Page 39: Subversion Best Practices

Trunk stays stable

Page 40: Subversion Best Practices

Merge branches back to trunk

Page 41: Subversion Best Practices

Trunk

Branch

Merge

Page 42: Subversion Best Practices

svn update

svn merge -r37:HEAD svn://svn/rep/branches/RB-1.0

svn commit -m ‘Merged r37 to r38’

Page 43: Subversion Best Practices

svn update

svn merge -r37:38 svn://svn/rep/branches/RB-1.0

svn commit -m ‘Merged r37 to r38’

Page 44: Subversion Best Practices

Good for spikes

Page 45: Subversion Best Practices

Good for bug fixes

Page 46: Subversion Best Practices

Love your IDE

Page 47: Subversion Best Practices

IntelliJ IDEAEclipse

Komodoemacs

vim

Page 48: Subversion Best Practices

Bonus recipe!

Page 49: Subversion Best Practices

Automated integration

Page 50: Subversion Best Practices

SVN hooks(just like CVS)

Page 51: Subversion Best Practices

Automatic actions

Page 52: Subversion Best Practices

Cruise Control

Page 53: Subversion Best Practices

Harmony

Page 54: Subversion Best Practices

Talk to SSG

Page 55: Subversion Best Practices
Page 56: Subversion Best Practices

slideshare.net/mza