Presentation is loading. Please wait.

Presentation is loading. Please wait.

Subversion (SVN) Tutorial for CS421 Dan Fleck Spring 2010.

Similar presentations


Presentation on theme: "Subversion (SVN) Tutorial for CS421 Dan Fleck Spring 2010."— Presentation transcript:

1 Subversion (SVN) Tutorial for CS421 Dan Fleck Spring 2010

2 What is version control?  Version management allows you to control and monitor changes to files  What changes were made?  Revert to pervious versions  When were changes made  What code was present in release 2.7?  Earliest tools were around 1972 (SCCS)  Older tools – RCS, CVS, Microsoft Source Safe, PVCS Version Manager, etc…  Current tools – Subversion, Mercurial, Git, Bazaar

3 We will use subversion  Why?  Because it’s popular  It’s well supported  IDEs - Netbeans, Eclipse  Numerous GUI tools  Works with xp-dev.com (which we’ll use)  I know little about the other recent tools - truth hurts  Big difference is SVN has a single central repository  Git/Mercurial are distributed (more peer-to-peer) http://git.or.cz/gitwiki/GitSvnComparsion (if you care) http://git.or.cz/gitwiki/GitSvnComparsion

4 subversion concepts  checkout – get a local copy of the files  I have no files yet, how do I get them?  add – add a new file into the repository  I created a new file and want to check it in  commit – send locally modified files to the repository  I’ve made changes, how do I send them to the group?  update – update all files with latest changes  Other people made changes, how do I get them?  tag / branch – label a “release”  I want to “turn in” a set of files

5 Creating a new repository  Command Line:  Open command prompt  Go to a directory where you want your files to be stored  svn checkout http://svn.xp-dev.com/svn/ >/http://svn.xp-dev.com/svn/<<your  GUI Mac OSX SCPlugin  Adds commands to right-click menu in Finder  GUI Windows Tortoise SVN  Adds commands to right-click menu in Explorer

6 Creating a new repository - Mac SCPlugin

7 Create Repository – Mac OSX

8 Create a repository using Tortoise SVN  I need a tool that allows Windows screenshots with a timer.  Open Windows Explorer  Select a directory where you want your repository  Right-click and select “SVN Checkout…”

9 Add a file into repository  Copy a new file into the “trunk” directory  Tell SVN to include the file as part of the repository  Command line  svn add yourFile.ppt  GUI  Windows: right click choose: TortoiseSVN->Add  Mac OSX: right click choose:More->Subversion->Add  This does NOT upload the file yet! The commit command will upload all new files and changed files

10 Commit changes  Modify a file contained in your repository  Command Line:  svn commit -m ’Added a new sequence diagram.’  GUI  Windows: right click choose: TortoiseSVN->commit  Mac OSX: right click choose:More->Subversion->commit  Update the message with what was changed in the file. This should be a meaningful statement someone can look at to determine what was changed

11 Update  Update gets all new changes from the repository.  svn update  GUI Users: you should get it by now  What happens if there is a conflict?  User A has version 3 of the file, modifies it, commits it creating version 4.  User B has version 3 of the file, modifies it, commits it  CONFLICT – User B’s copy of the file was out of date. User B must merge their changes into Version 4  For text files (like source code) SVN can help do this in an automated way  For binary files SVN cannot help… must be done manually  Lesson: Always ensure you have the latest version (update frequently). If multiple people are editing the same file you could have problems

12 Subversion Directories  trunk – main working files  branches – place to put other copies people are working on off the main trunk  tags – place to put a labeled “release”. You will turn in your project by tagging a version as “TurnInOne”  Command Line:  go to the directory of your project  svn copy trunk branches/TurnInOne  Windows GUI  right-click on “trunk”  select TortoiseSVN->Branch/Tag  chanage “To URL” to http://svn.xp-dev.com/svn/ >/branches/TurnInOne

13 Subversion Tags/Branchs  Tags/Branches really work as copying the repository to a new directory (url)  You will turn in your project by tagging versions (example: “TurnInOne”)  Command Line:  go to the directory of your project  svn copy trunk branches/TurnInOne  Windows GUI  right-click on “trunk”  select TortoiseSVN->Branch/Tag  chanage “To URL” to http://svn.xp-dev.com/svn/ >/branches/TurnInOne  Mac OSX SCPlugin GUI  Does not seem to work for me on xp-dev.com (use command line)

14 Summary  Create the repository by “svn checkout”  Copy your documents into “trunk” directory  Use “svn add” to mark files to repository  Use “svn commit” to send the files to the repository  Modify files, “svn commit” as needed until your deliverable is complete  Update turn in sheet (in repository)  svn commit (don’t forget the final commit!)  svn copy trunk tags/TurnInXYZ

15 Other notes  log command shows the log of changes to a file  diff command can shows changes between revisions (for text files only)  These commands are all built-in to IDEs: eclipse, netbeans


Download ppt "Subversion (SVN) Tutorial for CS421 Dan Fleck Spring 2010."

Similar presentations


Ads by Google