Introduction to Version Control SE-2030 Dr. Rob Hasker 1 Based on material at and slides written.

Slides:



Advertisements
Similar presentations
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.
Advertisements

1. What is Subversion? Why do we need CM? Basic concepts Repositories Options Setup Clients Options Setup Operation Troubleshooting Slide 2.
Let Use SVN(Subversion) Interaction Lab. Hyo-Geun Ahn
Summer of Code (SOC) Presentation Fred R McClurg Girish H Mhatre Version Control Overview.
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.
Concepts of Version Control A Technology-Independent View.
Version Control using Subversion Albert Young-Sun Kim November 2 nd, 2005 Available at entations/ subversion/
CVS Selim Çıracı Ahmet Kara Metin Tekkalmaz. CVS – Open Source Version Control System Outline What are Version Control Systems? And why do we need them?
CS 501 : An Introduction to SCM & GForge An Introduction to SCM & GForge Lin Guo
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
Microsoft Visual Source Safe 6.01 Microsoft Visual Source Safe (MVSS) Presented By: Rachel Espinoza.
Damien Guard (BSc, MBCS) Guernsey Software Developer Forum Change management with Subversion.
Version Control at UCB Version control with Subversion and Subclipse.
1 CMPT 275 Software Engineering Revision Control.
Source Control Repositories for Enabling Team Working Svetlin Nakov Telerik Corporation
G51FSE Version Control Naisan Benatar. Lecture 5 - Version Control 2 On today’s menu... The problems with lots of code and lots of people Version control.
SubVersioN – the new Central Service at DESY by Marian Gawron.
Perforce (Version Control Software). Perforce is an enterprise version management system in which users connect to a shared file repository. Perforce.
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.
By: Taylor Helsper.  Introduction  Bug Tracking  Progress Tracking  Version Control  Conclusion  Questions.
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.
Sumedha Rubasinghe October,2009 Introduction to Programming Tools.
Introduction to Version Control
Automating the Build Process using Ant SE-2030 Dr. Rob Hasker 1 Based on material by Dr. Mark L. Hornick.
Source Control Repositories for Team Collaboration: SVN, TFS, Git.
The new version control system. Kiril Karaatanasov, July 2006 What is Subversion Subversion is a newly developed open source version control system Subversion.
Subversion, an Open Source Version Control System An Introduction.
Source Control Systems SVN, Git, GitHub SoftUni Team Technical Trainers Software University
SE 2030 Software Engineering Tools and Practices SE 2030 Dr. Rob Hasker 1 Based on slides written by Dr. Mark L. Hornick Used with permission.
Version control Using Git Version control, using Git1.
1 SEG4912 University of Ottawa by Jason Kealey Software Engineering Capstone Project Tools and Technologies.
Subversion (SVN) Tutorial Source:
Object-Oriented Analysis & Design Subversion. Contents  Configuration management  The repository  Versioning  Tags  Branches  Subversion 2.
Version Control Systems with Subversion (SVN) and Tortoise.
Version Control Menggunakan TortoiseSVN
Software Quality Assurance
Copyright © 2015 – Curt Hill Version Control Systems Why use? What systems? What functions?
SENG 403 Tutorial 1 1SENG 403 – Winter Agenda Version Control Basics Subversion Basic actions in Subversion Some examples 2SENG 403 – Winter 2012.
Computer Science and Engineering The Ohio State University  Widely used, especially in the opensource community, to track all changes to a project and.
Automating the Build Process using ANT SE-2030 Dr. Rob Hasker 1 Based on material by Dr. Mark L. Hornick.
N from what language did C++ originate? n what’s input, output device? n what’s main memory, memory location, memory address? n what’s a program, data?
Version Control with SVN Images from TortoiseSVN documentation
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.
SPI NIGHTLIES Alex Hodgkins. SPI nightlies  Build and test various software projects each night  Provide a nightlies summary page that displays all.
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.
Source Control Repositories for Enabling Team Working Doncho Minkov Telerik Corporation
© CGI Group Inc. User Guide Subversion client TortoiseSVN.
NALINI S. NAUTIYAL SYSTEM SOFTWARE DIVISION Subversion.
DIGITAL REPOSITORIES CGDD Job Description… Senior Tools Programmer – pulled August 4 th, 2011 from Gamasutra.
Git workflows: using multiple branches for parallel development SE-2800 Dr. Mark L. Hornick 1.
Anjana & Shankar September,2010 Introduction to Programming Tools.
Source Control Dr. Scott Schaefer. Version Control Systems Allow for maintenance and archiving of multiple versions of code / other files Designed for.
Source Control Systems
Source Control Systems
Version Control with Subversion
Source Control Dr. Scott Schaefer.
Version control, using Git
Development and Deployment
Concurrent Version Control
slides borrowed and adapted from Alex Mariakis and CSE 390a
Revision Control Daniel Daugherty
User Guide Subversion client TortoiseSVN
Subversion Basics Guide
Introduction to Version Control with Git
Presentation transcript:

Introduction to Version Control SE-2030 Dr. Rob Hasker 1 Based on material at and slides written by Dr. Mark L. Hornick

2 The stages of developing a software application Requirements Analysis High-level Design [Plan] Low-level Design Implementation [Unit Test] Integration System Test Deploy Maintain

In many cases, multiple projects run concurrently New features are typically being added to the next version While at the same time, defects need to be corrected in existing releases SE-2030 Dr. Rob Hasker 3

On a single project, a team of software engineers work together toward a release All team members work on the same code and develop their respective parts An engineer may be responsible for anything from a whole subsystem to a few methods within a particular class SE-2030 Dr. Rob Hasker 4

Files have to be shared among developers on a team project Shared files can be kept in some type of Repository where they can be accessed and worked on by multiple individuals SE-2030 Dr. Rob Hasker 5 Image: Harry and Sally get their own respective Working Copies of the Master File in the Repository

This can lead to big problems… SE-2030 Dr. Rob Hasker 6 Image: Adds some methodModifies some other method

The problem to avoid: SE-2030 Dr. Rob Hasker Image: Harry’s changes are still held locally…

Harry’s changes are lost SE-2030 Dr. Rob Hasker Image: ‘’

Your SVN repository URL: SE-2030 Dr. Rob Hasker 9

The Lock-Modify-Unlock solution SE-2030 Dr. Rob Hasker Image: Sally must wait until Harry releases the lock Microsoft Visual SourceSafe follows this model

Lock-Modify-Unlock only allows a single user to edit the file at a time SE-2030 Dr. Rob Hasker Image:

Lock-Modify-Unlock has its own drawbacks: Harry has to remember to release his lock before Sally (or anyone else) can acquire the lock in order to edit Sally has to wait for Harry to finish before editing… Harry might be adding some new methods Sally just wants to add a few comments to an existing method SE-2030 Dr. Rob Hasker 12

The Copy-Modify-Merge Solution SE-2030 Dr. Rob Hasker 13 Image:

The Repository recognizes conflicts SE-2030 Dr. Rob Hasker 14 Image: Harry is prevented from writing

The Repository allows versions of the file to be compared for differences SE-2030 Dr. Rob Hasker 15 Image:

The Repository keeps both users synchronized SE-2030 Dr. Rob Hasker 16 Image:

Copy-Modify-Merge is actually very easy to use and manage Users can work in parallel Most of the time, concurrent changes don’t overlap People generally don’t edit exactly the same code simultaneously Amount of time spent resolving conflicts is nearly always less than the time that would be spent waiting for a lock to be released SE-2030 Dr. Rob Hasker 17

Is Lock-Modify-Unlock ever needed? When two or more people need to work on the same file, the simultaneous changes may not be mergable in all cases: MS Word documents Image documents EA design documents SE-2030 Dr. Rob Hasker 18

The Repository can also manage and track differences between parallel revisions of a document Typically, a software product will undergo revisions (2.0, 2.1, 3.0) while the original version continues to be maintained SE-2030 Dr. Rob Hasker 19 Image:

Subversion is an open-source version control system that is available for many platforms Windows Mac Linux Many current open-source projects (like Eclipse) use Subversion to maintain source code control SE-2030 Dr. Rob Hasker 20

Subversion in SE2030 The Subversion Repository for SE2030 is installed on emerald.msoe.edu – a Linux server accessible via the MSOE network In order to access the Repository, you need a Subversion Client that can read and write files to and from the Repository on the server SE-2030 Dr. Rob Hasker 21

The TortoiseSVN Subversion Client TortoiseSVN is a SourceForge open-source client application for the Windows platform There are similar client applications for Mac and Linux Mac - Linux (KDE) - Wikipedia comparison of various clients is at ersion_clients ersion_clients SE-2030 Dr. Rob Hasker 22 For more info, see

Homework Install TortoiseSVN on your PC – needed for lab this week courses:se-2030:installing_tortoisesvn Read more about Version Control courses:se-2030:version_control SE-2030 Dr. Rob Hasker 23 Links are also on course web page