1 / 33

Subversion for Smarties

Cameron Childress cameronc@sumoc.com. Subversion for Smarties. Intro. ColdFusion, since 1996 ACFUG since, 1998 Foosball, since 2001 Sumo Consulting, since 2002. Session Description.

alima
Download Presentation

Subversion for Smarties

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Cameron Childress cameronc@sumoc.com Subversion for Smarties

  2. Intro • ColdFusion, since 1996 • ACFUG since, 1998 • Foosball, since 2001 • Sumo Consulting, since 2002

  3. Session Description So you know how to Branch and Tag, but you have a sneaky suspicion there is more you could be doing with SVN. Come find out what you've been missing out on and how to make Subversion do more for you!

  4. Preview • Review of SVN basics • A few non-SVN things • Interesting bits built into SVN • External tools • Some examples

  5. Review: Key Advantages vs. VSS or CVS • SVN Server runs on many platforms • Many clients available for SVN • SVN is free & open source • Too many more to list…

  6. Subversion vs. Git – Basics • Created by LinusTorvalds • Replaced BitKeeper • Used for Linux Kernel, PERL, RoR, Android OS • Download at:http://git-scm.com

  7. Subversion vs. Git – Git Wins • SVN is Centralized, Git is distributed • Local operations are faster • Branching Handling • Merge Handling • Smaller HD Footprint (Mozilla 12 GiB in SVN, 420 MiB in Git)

  8. Subversion vsGit – SVN Wins • Better IDE support • SVN has a de-facto single Repository • Centralized access control • Version numbers are easier in SVN • Git / SVN Comparisonhttp://git.or.cz/gitwiki/GitSvnComparsion

  9. Review: Subversion Basics • Conventional Project Structure • Branches • Tags • Trunk • Typical Exposure: • Comit • Update • Resolve Conflicts • Branch / Merge (maybe)

  10. Review: Key Subversion Features • Revision numbers apply to entire tree • Directories are versioned • Working Copy vs. Repository • Caches pristine copy which allows • Revert • Diff • Status • Branches and tags are normal directories • Binary files are stored as difference data

  11. Something New in SVN: Changelists • Introduced in SVN 1.5 (currently at 1.6) • Also a feature in Perforce • Groups files for operations: • Commit • Diff • Great for grouping files for bug resolution

  12. Changelists – You Should Know • Part of working copy, not repository • Only works with files, not directories • One changelist assignment per file • Changelists cleared on commit • Override using flag “--keep-changelists”

  13. Changelist: How To – Command Line • Syntax: svnchangelist [listname] [filelist] • Listname can be any string • Filelist supports wildcards • More:http://svnbook.red-bean.com/nightly/en/svn.advanced.changelists.html

  14. Changelist: How To – Tortoise • Example…

  15. By the way: Perforce Also Has… • Labels • Similar to Tags, but not simply convention • ClientSpecs • Maps repo / directories • Together… • Very powerful for deployment • Great for large teams w/distributed roles

  16. SVN Properties • Think “metadata” for each file • Stored in .svn/props • Checked into repo with file • Versioned • Special Properties • svn:ignore • svn:keywords • svn:needs-lock • svn:executable

  17. Special SVN Property: svn:keywords • Used for keyword substitution • Must be explicitly turned on • svn:keywords • Date • Revision • Author • HeadURL • Id • Example…

  18. Automate Keyword Substitution • Config file “miscellany” section • Applies to working copy, not repo • On windows, found in : /%AppData%/Subversion More: http://svnbook.red-bean.com/nightly/en/ svn.advanced.props.special.keywords.html

  19. Hooks • Run a program at certain points in commit process • Implemented as bat file in Windows • Live in repo, not working copy • Examples by default found in “repo/hooks” http://svnbook.red-bean.com/nightly/en/ svn.reposadmin.create.html#svn.reposadmin.create.hooks

  20. Hook Types • start-commit • pre-commit / post-commit • pre-revprop-change / post-revprop-change • pre-lock / post-lock • pre-unlock / post-unlock

  21. Hooks: Tips • Hook programs execute with an empty environment • Do not modify a commit transaction using hook scripts • Permissions, permissions, permissions

  22. Hooks: Ideas • Push code to staging server • Send notification emails to dev team • Update issue / project management software

  23. Resources for Hooks • Brad Wood’s Bloghttp://www.codersrevolution.com/index.cfm/2008/9/15/Creating-a-postcommit-hook-for-Subversion • Dan Switzer’s Blog http://blog.pengoworks.com/index.cfm/2008/2/5/Debugging-Subversion-Repository-Hooks-in-Windows

  24. Visual SVN Server • Windows installer (visualsvn.com) • Installs Apache based Service • HTTPS/SSL Capable • Internally @ SVN 1.6.4 (current) as of 8/12/09 • Take a Look…

  25. SVN Abstration Layer • Provides abstraction for RIA ForgeBy: Rob Gonda • Configure via XML • Uses Apache by default, partial support for SVNServe • http://svnservice.riaforge.org/

  26. SVN Abstraction Layer • Repositories • Create, delete, list • Users • Create, delete, list, changepassword • History • List

  27. SVN Abstraction Layer: Example Code svnService = createObject('component', 'models.svnService').init('config/config.xml'); svnService.listRepos(); svnService.create(‘myRepo); svnService.getLog(‘myRepo', 10); svnService.addUser(‘myRepo', ‘username', ‘password');

  28. SVN Sync • SVNSync – Repo BrowserBy: Tom de Manincor • Configure via XML (X2) • config/environment.xml • model/svnAPI/config.xml • http://svnsync.riaforge.org/

  29. SVN Sync • Let’s check it out…

  30. Roundup: RIA Forge Projects • Deployment builder - ANT/SVNBy: Matt Rileyhttp://deploymentbuilder.riaforge.org/ • Skweegee - TRAC + more(formerly Trac_Fu)By: Russ Johnsonhttp://skweegee.riaforge.org/

  31. Roundup: RIA Forge Projects • SVNAuthz.cfc – Manipulate authz filesBy: Terrance Ryanhttp://svnauthz.riaforge.org/ • SVNUtil – AIR App, Removes .svn infoBy: Omar Gonzalezhttp://svnutil.riaforge.org/

  32. Resources • Book - Version Control with Subversionhttp://svnbook.red-bean.com • Windows Installer / Admin - VisualSVNhttp://www.visualsvn.com

  33. Questions? • Contact: • cameronc@sumoc.com • cameroncf (YIM / AIM) • Presentation available NOW via: • USB Thumbdrive http://www.sumoc.com/downloads/files/svn.zip • Take the Survey:http://tinyurl.com/cfunitedsurvey

More Related