1 SUBVERSION FOR SMARTIES Cameron Childress [email protected].

33
1 www.cfunited.com SUBVERSION FOR SMARTIES SUBVERSION FOR SMARTIES Cameron Childress [email protected]
  • date post

    21-Dec-2015
  • Category

    Documents

  • view

    217
  • download

    1

Transcript of 1 SUBVERSION FOR SMARTIES Cameron Childress [email protected].

1www.cfunited.com

SUBVERSION FOR SMARTIESSUBVERSION FOR SMARTIESSUBVERSION FOR SMARTIESSUBVERSION FOR SMARTIES

Cameron Childress

[email protected]

2www.cfunited.com

IntroIntroIntroIntro

• ColdFusion, since 1996

• ACFUG since, 1998

• Foosball, since 2001

• Sumo Consulting, since 2002

3www.cfunited.com

Session DescriptionSession DescriptionSession DescriptionSession 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!

4www.cfunited.com

PreviewPreviewPreviewPreview

• Review of SVN basics

• A few non-SVN things

• Interesting bits built into SVN

• External tools

• Some examples

5www.cfunited.com

Review: Key Advantages vs. VSS or CVSReview: Key Advantages vs. VSS or CVSReview: Key Advantages vs. VSS or CVSReview: 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…

6www.cfunited.com

•Subversion vs. Git – BasicsSubversion vs. Git – Basics•Subversion vs. Git – BasicsSubversion vs. Git – Basics

• Created by Linus Torvalds

• Replaced BitKeeper

• Used for Linux Kernel, PERL, RoR, Android OS

• Download at:http://git-scm.com

7www.cfunited.com

Subversion vs. Git – Git WinsSubversion vs. Git – Git WinsSubversion vs. Git – Git WinsSubversion 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)

8www.cfunited.com

Subversion vs Git – SVN WinsSubversion vs Git – SVN WinsSubversion vs Git – SVN WinsSubversion vs Git – 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

9www.cfunited.com

Review: Subversion BasicsReview: Subversion BasicsReview: Subversion BasicsReview: Subversion Basics

• Conventional Project Structure• Branches• Tags• Trunk

• Typical Exposure:• Comit• Update• Resolve Conflicts• Branch / Merge (maybe)

10www.cfunited.com

Review: Key Subversion FeaturesReview: Key Subversion FeaturesReview: Key Subversion FeaturesReview: 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

11www.cfunited.com

Something New in SVN: ChangelistsSomething New in SVN: ChangelistsSomething New in SVN: ChangelistsSomething 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

12www.cfunited.com

Changelists – You Should KnowChangelists – You Should KnowChangelists – You Should KnowChangelists – 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”

13www.cfunited.com

Changelist: How To – Command LineChangelist: How To – Command LineChangelist: How To – Command LineChangelist: How To – Command Line

• Syntax: svn changelist [listname] [filelist]

• Listname can be any string• Filelist supports wildcards

• More:http://svnbook.red-bean.com/nightly/en/svn.advanced.changelists.html

14www.cfunited.com

Changelist: How To – TortoiseChangelist: How To – TortoiseChangelist: How To – TortoiseChangelist: How To – Tortoise

• Example…

15www.cfunited.com

By the way: Perforce Also Has…By the way: Perforce Also Has…By the way: Perforce Also Has…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

16www.cfunited.com

SVN PropertiesSVN PropertiesSVN PropertiesSVN 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

17www.cfunited.com

Special SVN Property: svn:keywordsSpecial SVN Property: svn:keywordsSpecial SVN Property: svn:keywordsSpecial SVN Property: svn:keywords

• Used for keyword substitution• Must be explicitly turned on• svn:keywords

Date Revision Author HeadURL Id

• Example…

18www.cfunited.com

Automate Keyword SubstitutionAutomate Keyword SubstitutionAutomate Keyword SubstitutionAutomate 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

19www.cfunited.com

HooksHooksHooksHooks

• 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

20www.cfunited.com

Hook TypesHook TypesHook TypesHook Types

• start-commit• pre-commit / post-commit• pre-revprop-change / post-revprop-change• pre-lock / post-lock• pre-unlock / post-unlock

21www.cfunited.com

Hooks: TipsHooks: TipsHooks: TipsHooks: Tips

• Hook programs execute with an empty environment

• Do not modify a commit transaction using hook scripts

• Permissions, permissions, permissions

22www.cfunited.com

Hooks: IdeasHooks: IdeasHooks: IdeasHooks: Ideas

• Push code to staging server• Send notification emails to dev team• Update issue / project management software

23www.cfunited.com

Resources for HooksResources for HooksResources for HooksResources for Hooks

• Brad Wood’s Bloghttp://www.codersrevolution.com/index.cfm/2008/9/15/Creating-a-postcommit-hook-for-Subversion

• Dan Switzer’s Bloghttp://blog.pengoworks.com/index.cfm/

2008/2/5/Debugging-Subversion-Repository-Hooks-in-Windows

24www.cfunited.com

Visual SVN ServerVisual SVN ServerVisual SVN ServerVisual 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…

25www.cfunited.com

SVN Abstration LayerSVN Abstration LayerSVN Abstration LayerSVN Abstration Layer

• Provides abstraction for RIA ForgeBy: Rob Gonda

• Configure via XML• Uses Apache by default, partial support for

SVNServe

• http://svnservice.riaforge.org/

26www.cfunited.com

SVN Abstraction LayerSVN Abstraction LayerSVN Abstraction LayerSVN Abstraction Layer

• Repositories Create, delete, list

• Users Create, delete, list, changepassword

• History List

27www.cfunited.com

SVN Abstraction Layer: Example CodeSVN Abstraction Layer: Example CodeSVN Abstraction Layer: Example CodeSVN 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');

28www.cfunited.com

SVN SyncSVN SyncSVN SyncSVN Sync

• SVNSync – Repo BrowserBy: Tom de Manincor

• Configure via XML (X2)• config/environment.xml• model/svnAPI/config.xml

• http://svnsync.riaforge.org/

29www.cfunited.com

SVN SyncSVN SyncSVN SyncSVN Sync

• Let’s check it out…

30www.cfunited.com

Roundup: RIA Forge ProjectsRoundup: RIA Forge ProjectsRoundup: RIA Forge ProjectsRoundup: RIA Forge Projects

• Deployment builder - ANT/SVNBy: Matt Rileyhttp://deploymentbuilder.riaforge.org/

• Skweegee - TRAC + more(formerly Trac_Fu)By: Russ Johnsonhttp://skweegee.riaforge.org/

31www.cfunited.com

Roundup: RIA Forge ProjectsRoundup: RIA Forge ProjectsRoundup: RIA Forge ProjectsRoundup: RIA Forge Projects

• SVNAuthz.cfc – Manipulate authz filesBy: Terrance Ryanhttp://svnauthz.riaforge.org/

• SVNUtil – AIR App, Removes .svn infoBy: Omar Gonzalezhttp://svnutil.riaforge.org/

32www.cfunited.com

ResourcesResourcesResourcesResources

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

• Windows Installer / Admin - VisualSVNhttp://www.visualsvn.com

33www.cfunited.com

Questions?Questions?Questions?Questions?

• Contact:• [email protected]• cameroncf (YIM / AIM)

• Presentation available NOW via:• USB Thumbdrive

http://www.sumoc.com/downloads/files/svn.zip

• Take the Survey:http://tinyurl.com/cfunitedsurvey