Your SlideShare is downloading. ×
0
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Subversionn Introduction at SuperMondays 2009-09-01
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Subversionn Introduction at SuperMondays 2009-09-01

1,382

Published on

A quick and dirty introduction to subversion that I gave at the SuperMondays event in Newcastle upon Tyne (UK) on Tuesday (!) 1st September 2009.

A quick and dirty introduction to subversion that I gave at the SuperMondays event in Newcastle upon Tyne (UK) on Tuesday (!) 1st September 2009.

Published in: Technology, Spiritual
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,382
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
16
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • RCS = Revision Control System CVS = Concurrent Versions System
  • Windows Mac OSX Linux /*nix GUI and Command Line clients poperties on files (with auto properties) means that files can be native on each machine.
  • Transcript

    • 1. Subversion Not that cool … Alex Kavanagh [email_address] @ajkavanagh
    • 2. but very good
    • 3. In the beginning there was RCS
    • 4. and RCS begat CVS
    • 5. and CVS begat SVN (sort of …)
    • 6. The 80% VCS
    • 7. http:// subversion .tigris.org/
    • 8. or via yum,
    • 9. or aptitude
    • 10. or some other way (see the website!)
    • 11. To learn it …
    • 12. … get this book
    • 13.  
    • 14. “ Why use a Version Control System? ”
    • 15. if you …
    • 16. program
    • 17. design web sites
    • 18. write, or edit, text
    • 19. then you are always …
    • 20. making changes!
    • 21. if you're not using a VCS
    • 22. then HOW are you tracking those changes?
    • 23. That's what subversion …
    • 24. Git, Hg, Darcs, Bzr (and others) …
    • 25. do
    • 26.  
    • 27. “ Why use Subversion ?”
    • 28. DVCS are definitely cooler
    • 29. Bzr
    • 30. Lots of projects use svn
    • 31. Most people don't 'get' DVCS
    • 32. Branching and Tagging 'lose' most people
    • 33. Corporates types like centralised repositories
    • 34. = Subversion used everywhere (~30% of Open Source projects)
    • 35. “ Subversion bits”
    • 36. Cross Platform
    • 37. Centralised Repository (Networked not decentralised)
    • 38. Copies are cheap
    • 39. Subversion tracks files and directories (even empty ones)
    • 40. Revision Numbers are per repository
    • 41. Files and Directories can have properties/meta-data
    • 42. Important: Every commit goes to central repository
    • 43. GUI Tools: Windows: TortoiseSVN Cross Platform: RapidSVN
    • 44. Command Line: $ svn <command> args
    • 45. Repository Schemes
    • 46. $ svn co file ://home/alex/svnroot/repos/...
    • 47. $ svn co svn ://server/repos/...
    • 48. $ svn co svn+ssh ://server/repos/...
    • 49. $ svn co http ://server/repos/...
    • 50. Trunk, Branches and Tags
    • 51. Subversion Convention: <project> - trunk |- branches – V1 |- tags - REL-1.0
    • 52. Trunk: Normal Development
    • 53. Branches: Bugs, Releases, Experiments
    • 54. Tags: Release points (REL-1.0) Reference points (PRE-BUG-123)
    • 55. Subversion uses '.svn/' directories (and litters them in each sub-directory)
    • 56. “ A flavour of subversion” (Command Line!)
    • 57. $ svn ls svn://devcentre/nxec/client error-page-plugin/ start-page/ test-usb/
    • 58. $ mkdir test-usb $ cd test-usb/ $ svn co svn://devcentre/nxec/client/test-usb/trunk . A install.sh A test-usb.sh A report-usb.sh Checked out revision 304.
    • 59. $ svn info Path: . URL: svn://devcentre/nxec/client/test-usb/trunk Repository Root: svn://devcentre Repository UUID: 91107793-f093-49fa-88a1-086c1fccaf20 Revision: 304 Node Kind: directory Schedule: normal Last Changed Author: dev Last Changed Rev: 210 Last Changed Date: 2009-08-10 11:15:24 +0100 (Mon, 10 Aug 2009)
    • 60. $ touch README $ svn st ? README
    • 61. $ svn add README A README
    • 62. $ svn ci -m &quot;Added README file&quot; Adding README Transmitting file data . Committed revision 305. $ svn up At revision 305.
    • 63. $ svn log ------------------------------------------------------------------------ r305 | dev | 2009-09-01 14:12:58 +0100 (Tue, 01 Sep 2009) | 1 line Added README file ------------------------------------------------------------------------ r297 | dev | 2009-08-28 10:07:55 +0100 (Fri, 28 Aug 2009) | 1 line renaming client-utils to client ------------------------------------------------------------------------ r210 | dev | 2009-08-10 11:15:24 +0100 (Mon, 10 Aug 2009) | 1 line Importing test-usb utils ------------------------------------------------------------------------
    • 64. Importing a Project: $ cd <your unversioned project dir> $ svn import -m “project name” . svn://server/project/trunk $ mkdir <your versioned project dir> $ svn co svn://server/project/trunk
    • 65. Importing a Project: $ cd <your unversioned project dir> $ svn import -m “project name” . svn://server/project/trunk $ mkdir <your versioned project dir> $ svn co svn://server/project/trunk
    • 66. Importing a Project: $ cd <your unversioned project dir> $ svn import -m “project name” . svn://server/project/trunk $ mkdir <your versioned project dir> $ svn co svn://server/project/trunk
    • 67. Importing a Project: $ cd <your unversioned project dir> $ svn import -m “project name” . svn://server/project/trunk $ mkdir <your versioned project dir> $ svn co svn://server/project/trunk
    • 68. Creating a Branch: $ svn mkdir -m “Making branches” svn://server/project/branches $ cd copy -m “Making Release Branch” svn://server/project/trunk svn://server/project/branches/REL-1.0
    • 69. Some Subversion features
    • 70. Commits are true atomic operations
    • 71. Renamed/copied/moved/removed files retain full revision history.
    • 72. Versioning of symbolic links.
    • 73. Native support for binary files, with space-efficient binary-diff storage
    • 74. Branching and tagging are cheap operations, independent of file size Subversion itself does not distinguish between a tag, a branch, and a directory
    • 75. File locking for unmergeable files (&quot;reserved checkouts&quot;)
    • 76. &
    • 77. if (like me) you like a DVCS like Git …
    • 78. you can use Git with Subversion! git-svn (for when you have to use subversion)
    • 79. Questions?

    ×