Change management with subversion l.jpg
This presentation is the property of its rightful owner.
Sponsored Links
1 / 27

Change management with Subversion PowerPoint PPT Presentation


  • 192 Views
  • Uploaded on
  • Presentation posted in: General

Change management with Subversion. Damien Guard (BSc, MBCS) http://damieng.com [email protected] Guernsey Software Developer Forum http://developers.org.gg. Why manage change?. Why manage change?. Version control. Know and control what goes into a release

Download Presentation

Change management with Subversion

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Change management with subversion l.jpg

Change management with Subversion

Damien Guard (BSc, MBCS)

http://damieng.com

[email protected]

Guernsey Software Developer Forum

http://developers.org.gg


Why manage change l.jpg

Why manage change?


Why manage change3 l.jpg

Why manage change?

Version control

  • Know and control what goes into a release

  • Develop versions in parallel

  • Work with any previous code-base

  • Apply change where it is needed


Why manage change4 l.jpg

Why manage change?

Collaboration

  • Function as a team without losing work

  • Merge automatically where possible

  • Resolve conflicts interactively

  • Autonomous off-line or distance working


Why manage change5 l.jpg

Why manage change?

Responsibility

  • Audit log of what was changed by whom

  • Legal due diligence & professional conduct

  • Standards & certification compliance

  • Individual responsibility for contributions


Why manage change6 l.jpg

Why manage change?

Gateway to...

  • Automated build & deployment

  • Continuous integration testing


Why subversion l.jpg

Why Subversion?

  • Open source, cross platform

  • Stable, widely used

  • Unobtrusive copy-modify-merge model

  • Integration via additional tools


Technical benefits l.jpg

Technical benefits

  • Transactional commit mechanism

  • Metadata support per file & directory

  • Off-line support

  • Efficient use of network & disk


Terminology l.jpg

Terminology


Repository l.jpg

Repository

  • Central store located on a servere.g. svn://myserver/https://s.myserver.com/

  • Updated through commits

  • Recommended path structure


Commit l.jpg

Commit

  • Set of related changes

  • Receives unique sequential number n

  • Revision n refers to the repository after commit n is applied

  • Commit early and often


Trunk l.jpg

Trunk

  • Primary path used for development

  • Active and potentially unstable

  • Should still compile ideally...and pass automated tests


Branch l.jpg

Branch

  • Copy of trunk, a branch or tag for isolation

  • When preparing for a release...and trunk needs to carry on

  • When change is too disruptive...and will hinder other developers

  • Merge changes back to trunk later


Slide14 l.jpg

Tag

  • Copy of trunk or a branch for information

  • Each tag represents a specific release

  • Easier than remembering revision & path

  • No further commits...so control /tags/ with security


Working copy l.jpg

Working copy

  • Partial or full checkout of the repository

  • Local copy for a single developer

  • Native file formats - edit as usual

  • Subversion client data in .svn directories


Server options l.jpg

Server options

  • Hosted open - Google Code, SourceForge

  • Hosted private - CVSDude $7-$30/month

  • Svnserve dedicated - Simple set-up

  • Apache mod - HTTP, SSL, SSPI


Clients l.jpg

Clients

  • Command-line, cross platform & scriptable

  • TortoiseSVN for Windows Explorer

  • AnkhSVN for Visual Studio

  • Subclipse for Eclipse


Getting started l.jpg

Getting started

  • Setup repository folders

  • Checkout

  • Import files

  • Commit


Typical process l.jpg

Typical process

  • Make changes

  • Update working copy

  • Resolve any conflicts

  • Test

  • Commit


Other operations l.jpg

Other operations

  • Revert

  • Patches

  • Branch & switch

  • Blame

  • Lock & unlock


Additional tools l.jpg

Additional tools

  • Tracticket & milestone tracking, wiki

  • CruiseControlcontinuous integration

  • ViewVCweb interface


Conclusion l.jpg

Conclusion

  • Subversion can work for you

  • Simple & inexpensive to get started

  • Address release, audit and collaboration headaches


More information l.jpg

More information

  • Official web sitehttp://subversion.tigris.org

  • Version Control with Subversionhttp://svnbook.red-bean.com

  • Bruce Perens: Subversion Version Control http://phptr.com/perens/


Questions l.jpg

Questions?


Developer buy in l.jpg

Developer buy-in

  • CommitmentDevelopers must be on-board

  • UnobtrusiveStay out of the way until needed

  • EnablingMake bold changes & remove dead code


Disadvantages l.jpg

Disadvantages

  • Apache installation process

  • Large file handling via Apache > 15MB

  • Management of security

  • Tracking of merge


Alternatives l.jpg

Alternatives


  • Login