SENG 403 Tutorial 1 1SENG 403 – Winter 2012. Agenda Version Control Basics Subversion Basic actions in Subversion Some examples 2SENG 403 – Winter 2012.

Slides:



Advertisements
Similar presentations
TortoiseSVN By Group 1 Team B. Installing TortoiseSVN.
Advertisements

Intro to Version Control Have you ever …? Had an application crash and lose ALL of your work Made changes to a file for the worse and wished you could.
1. What is Subversion? Why do we need CM? Basic concepts Repositories Options Setup Clients Options Setup Operation Troubleshooting Slide 2.
Version Control System (Sub)Version Control (SVN).
Version Control 1.  Version control (or revision control) is the term for the management of source files, and all of the intermediate stages as development.
Version Control System Sui Huang, McMaster University Version Control SystemSui Huang, McMaster University Version Control System -- base on Subversion.
Dedi Rahmawan Putra  Shared Document  Conventional Ways  Common Problems  What is TortoiseSVN  Advantages over another tools  Basic Concepts.
David Notkin Autumn 2009 CSE303 Lecture 22 Subversion is an open source version control system. Social Implications Friday version control system.
Using subversion COMP 2400 Prof. Chris GauthierDickey.
Version Control using Subversion Albert Young-Sun Kim November 2 nd, 2005 Available at entations/ subversion/
Subversion Takes Back the Night How Version Control makes web development better.
CS311 – Lecture 08 Outline Subversion (SVN) *All information taken from “SVN Book” O’Reilly Lecture 081CS Operating Systems I.
Version Control and Subversion Chris Coakley. Outline What is Version Control? Why use it? Using Subversion (SVN)
Damien Guard (BSc, MBCS) Guernsey Software Developer Forum Change management with Subversion.
Source Control Repositories for Enabling Team Working Svetlin Nakov Telerik Corporation
SubVersioN – the new Central Service at DESY by Marian Gawron.
Version Control Systems and the Subversion Kloimstein Dominik.
Version Control with git. Version Control Version control is a system that records changes to a file or set of files over time so that you can recall.
Git for Version Control These slides are heavily based on slides created by Ruth Anderson for CSE 390a. Thanks, Ruth! images taken from
Version Control with Subversion. What is Version Control Good For? Maintaining project/file history - so you don’t have to worry about it Managing collaboration.
Source Control Repositories for Team Collaboration: SVN, TFS, Git Svetlin Nakov Telerik Software Academy academy.telerik.com Manager Technical Training.
Programming in Teams And how to manage your code.
Subversion. What is Subversion? A Version Control System A successor to CVS and SourceSafe Essentially gives you a tracked, shared file system.
Source Control Repositories for Team Collaboration: SVN, TFS, Git.
The Design Workshop Introduction to Version Control 1.
The new version control system. Kiril Karaatanasov, July 2006 What is Subversion Subversion is a newly developed open source version control system Subversion.
Version control with Subversion how to set it up, use it, and save your sanity.
Version Control with Subversion Quick Reference of Subversion.
Source Control Systems SVN, Git, GitHub SoftUni Team Technical Trainers Software University
Subversion (SVN) Tutorial for CS421 Dan Fleck Spring 2010.
Version control Using Git Version control, using Git1.
Subversion (SVN) Tutorial Source:
Object-Oriented Analysis & Design Subversion. Contents  Configuration management  The repository  Versioning  Tags  Branches  Subversion 2.
Using Subversion and TortoiseSVN for Windows by Galen Wilkerson Gund Institute for Ecological Economics University of Vermont
Version Control Systems with Subversion (SVN) and Tortoise.
Version Control Menggunakan TortoiseSVN
(Sub)Version Control. 2 Keep large teams working on the same code Back up your work so you don't lose it all Compare changes to previous versions Revert.
Subversion (SVN) A Revision Control System Successor to CVS Carlos Armas Hervey Allen.
Introduction to Version Control SE-2030 Dr. Rob Hasker 1 Based on material at and slides written.
INFSO-RI Enabling Grids for E-sciencE SCDB C. Loomis / Michel Jouvin (LAL-Orsay) Quattor Tutorial LCG T2 Workshop June 16, 2006.
Version Control with SVN Images from TortoiseSVN documentation
Version Control Reducing risk with version control Jon Austin
Copyright © Curt Hill Tortoise SVN A Subversion Client.
When collaborating, it is important to manage changes in the models. For example: –To create or edit a submodel E.g. Habitat suitability is replaced with.
L.T.E :: Learning Through Experimenting Using google-svn for MtM Docs Development Denis Thibault Version 3.2 Mar 12 th, 2009.
Sabriansyah R.A Version Control. The Repository Subversion adalah sistem tersentralisasi untuk informasi sharing Repository adalah pusat penyimpanan data.
Version Control and SVN ECE 297. Why Do We Need Version Control?
WinCVS Training è Basic Concepts è Download & Setup è Importing a new module into CVS Repository è Getting new module from CVS è Getting Latest version.
Subversion (SVN) is a widely used version control system and an essential piece of the MIMES collaborative modeling environment. It allows us to manage.
1 CSE 303 Lecture 19 Version control and Subversion ( svn ) slides created by Marty Stepp
TEAM FOUNDATION VERSION CONTROL AN OVERVIEW AND WALKTHROUGH By: Michael Mallar.
Subversion (SVN) Tutorial for CS421 Dan Fleck Spring 2010.
Source Control Repositories for Enabling Team Working Doncho Minkov Telerik Corporation
© CGI Group Inc. User Guide Subversion client TortoiseSVN.
CS520 Web Programming Version Control with Subversion Chengyu Sun California State University, Los Angeles.
Git A distributed version control system Powerpoint credited to University of PA And modified by Pepper 28-Jun-16.
Problem Solving With C++ SVN ( Version Control ) April 2016.
CS491A Software Design Lab Version Control with CVS and Subversion Chengyu Sun California State University, Los Angeles.
Introduction to Subversion Getting started with svn Matteo Vescovi 19/02/2010.
Version Control with Subversion
SVN intro (review).
Version Control with Subversion (SVN)
Concurrent Version Control
Version Control System
slides borrowed and adapted from Alex Mariakis and CSE 390a
User Guide Subversion client TortoiseSVN
Subversion Basics Guide
CVS By: Mark Henkel.
Systems Analysis and Design I
Presentation transcript:

SENG 403 Tutorial 1 1SENG 403 – Winter 2012

Agenda Version Control Basics Subversion Basic actions in Subversion Some examples 2SENG 403 – Winter 2012

Version Control Basics A version (or revision) control system is able to track incremental versions of files and directories over time The core of a version control system is a repository 3SENG 403 – Winter 2012

Version Control Server The version control server does not work just like a typical file server. The repository remembers each version of files, as they are changed in the repository. When a client reads from the repository, it normally gets the latest version. But it can request the previous states of the file system. Working copy: A local copy of a particular version of a VCS-managed data. 4SENG 403 – Winter 2012

The Main Reasons to Have a VCS To track the various versions of digital information over time To enable collaborating editing and sharing of data We want sharing but we want to avoid accidentally stepping on each other’s toes. 5SENG 403 – Winter 2012

A Typical Problem 6SENG 403 – Winter 2012

Solution 1:Lock-Modify-Unlock 7SENG 403 – Winter 2012

Solution 2: Copy-Modify-Merge 8SENG 403 – Winter 2012

Solution 2 (continued) 9SENG 403 – Winter 2012

Subversion Repository Subversion clients commit in an atomic fashion. After each successful commit, a new state of filesystem tree will be created. It is called a revision. 10SENG 403 – Winter 2012

Subversion Working Copies A working copy is a directory on your local machine, containing a collection of files. When you finish making changes, you tell the Subversion client to publish it, so that other people can see the changes. To manage merges and conflicts, Subversion keeps track of the revision that your working copy is based on and a timestamp recording when the local copy was last updated by the repository. 11SENG 403 – Winter 2012

Some VCS Terms Repository (repo) Trunk/Main Add Revision Head Check out Check in Changelog/History Update/Sync Revert Branch Merge Conflict Resolve Diff/Change/Delta 12SENG 403 – Winter 2012

SVN Server We need a SVN server to put all the revisions of the project(s) on it. One option is to use free source code repository web sites, like SourceForge and CodePlex. In this tutorial we will use CodePlex. CodePlex supports SVN as well as MS TFS. You can define a project and use the VCS Server of the CodePlex. Warning: Unless you make the project public within a month, it will be removed after 30 days. 13SENG 403 – Winter 2012

Addressing the Repository Subversion client programs use URLs to identify versioned files and directories in Subversion repositories. For the most part, these URLs use the standard syntax, allowing for server names and port numbers to be specified as part of the URL: list.txt 14SENG 403 – Winter 2012

SVN Client On Linux/Unix based operating systems, there is a command line SVN Client, called svn. On Windows, you can install GUI clients. TortoiseSVN is a free SVN client. When you install it, it will be integrated into Windows Explorer pop-up menu. 15SENG 403 – Winter 2012

Checkins 16SENG 403 – Winter 2012

Example – Creating a Working Copy 17SENG 403 – Winter 2012

Checkouts and Editing 18SENG 403 – Winter 2012

Example - Commit 19SENG 403 – Winter 2012

Basic Diffs 20SENG 403 – Winter 2012

Example – Diff Viewer 21SENG 403 – Winter 2012

Conflicts 22SENG 403 – Winter 2012

Conflicts - Example Create two working copies of the project Add different items at the end of list.txt. Commit the file from the first working copy. Try to commit the second copy. You will get an error. 23SENG 403 – Winter 2012

Conflicts – Example (continued) To see the conflicts, choose “SVN update” from the pop-up menu, on the second working copy. It will put conflicts inside the file, and also create three more files. The conflicting area inside the file in question is marked like this <<<<<<< filename your changes ======= code merged from repository >>>>>>> revision 24SENG 403 – Winter 2012

Conflicts – Example (continued) Three additional files are: filename.ext.mine This is your file as it existed in your working copy before you updated your working copy - that is, without conflict markers. filename.ext.rOLDREV This is the file that was the BASE revision before you updated your working copy. That is, it the file that you checked out before you made your latest edits. filename.ext.rNEWREV This is the file that your Subversion client just received from the server when you updated your working copy. This file corresponds to the HEAD revision of the repository. 25SENG 403 – Winter 2012

Conflicts – Example (continued) Open the conflict editor by choosing “Edit conflicts” from the menu. You should decide what the code should look like, do the necessary changes and save the file. Afterwards execute the command TortoiseSVN → Resolved and commit your modifications to the repository. 26SENG 403 – Winter 2012

Repository Structure There is no predefined way to organize stuff in the repository. A best practice is to use a structure like this: trunk branches/branch1 branches/branch2... tags/tag1 tags/tag SENG 403 – Winter 2012

Tagging 28SENG 403 – Winter 2012

Tagging - Example Select the folder in your working copy which you want to copy to a branch or tag, then select the command TortoiseSVN → Branch/Tag.... You should change the “to URL” value to a new path for the tag. 29SENG 403 – Winter 2012

Branching 30SENG 403 – Winter 2012

Merging 31SENG 403 – Winter 2012

Real-life example: Managing Windows Source Code 32SENG 403 – Winter 2012

References & Further Readings Subversion book TortoiseSVN Help: ndex.html A Visual Guide to Version Control: version-control/ 33SENG 403 – Winter 2012