Version Control CS169 Lecture 7 Prof. Aiken CS 169 Lecture 7 1.

Slides:



Advertisements
Similar presentations
Configuration Management
Advertisements

Page 1 October 31, 2000 An Introduction to Large-Scale Software Development Steve Varnau Core HP-UX Operation October 31, 2000.
Branching, Switching and tagging Francesco Furfari CNR-ISTI Italy.
Software Configuration Management Donna Albino LIS489, December 3, 2014.
Software Delivery. Software Delivery Management  Managing Requirements and Changes  Managing Resources  Managing Configuration  Managing Defects 
Chapter 3.5 Debugging Games
Source Control in MATLAB A tool for tracking changes in software development projects. Stuart Nelis & Rachel Sheldon.
Concepts of Version Control A Technology-Independent View.
I.1 ii.2 iii.3 iv.4 1+1=. i.1 ii.2 iii.3 iv.4 1+1=
Illinois Institute of Technology
CS 501 : An Introduction to SCM & GForge An Introduction to SCM & GForge Lin Guo
Adapted from Prof. Necula CS 169, Berkeley1 Version Control V Software Engineering Lecture 12, Spring 2008 Clark Barrett, New York University.
I.1 ii.2 iii.3 iv.4 1+1=. i.1 ii.2 iii.3 iv.4 1+1=
EE694v-Verification-Lect5-1- Lecture 5 - Verification Tools Automation improves the efficiency and reliability of the verification process Some tools,
Source Code Management Or Configuration Management: How I learned to Stop Worrying and Hate My Co-workers Less.
1 CMPT 275 Software Engineering Revision Control.
Chapter 25 – Configuration Management 1Chapter 25 Configuration management.
Prof. Aiken CS 169 Lecture 71 Version Control CS169 Lecture 7.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
1 Topics for this Lecture Software maintenance in general Source control systems (intro to svn)
Software Engineering Modern Approaches
© 2012 IBM Corporation Rational Insight | Back to Basis Series Chao Zhang Unit Testing.
Introduction to Version Control
The Design Workshop Introduction to Version Control 1.
Software Engineering CS3003 Lecture 3 Software maintenance and evolution.
1 Lecture 19 Configuration Management Software Engineering.
Chapter 4: Software Configuration Management (SCM)
CVS 簡介 數位芝麻網路公司蔡志展 2001/8/18 大綱 • CVS 簡介 • CVS 安裝 • CVS 設定 (Linux/Windows) • CVS 指令簡介 • CVS 多人環境的應用.
Development Methodology N. Draper. Introduction Development Process Test driven development Continuous Integration –Automated build and test Trac Ticket.
Software Quality Assurance
Copyright © 2015 – Curt Hill Version Control Systems Why use? What systems? What functions?
Computer Science and Engineering The Ohio State University  Widely used, especially in the opensource community, to track all changes to a project and.
Distributed Version Management Distributed Version of Management for Computer Software (DVMS)
Code and Asset Branching Best Practices Session 315 Philip Wolfe, Lead Developer Farm Credit Services of America.
11 Version Control Systems Mauro Jaskelioff (originally by Gail Hopkins)
Configuration Management CSCI 5801: Software Engineering.
Program Development Cycle
EGR 115 Introduction to Computing for Engineers Branching & Program Design – Part 1 Monday 29 Sept 2014 EGR 115 Introduction to Computing for Engineers.
1 MSTE Visual SourceSafe For more information, see:
P51UST: Unix and SoftwareTools Unix and Software Tools (P51UST) Version Control Systems Ruibin Bai (Room AB326) Division of Computer Science The University.
Version Control *Slides are modified from Prof. Necula from CS169.
CSC 480 Software Engineering Test Planning. Test Cases and Test Plans A test case is an explicit set of instructions designed to detect a particular class.
What is a level of test?  Defined by a given Environment  Environment is a collection of people, hard ware, software, interfaces, data etc.
APT Configuration Management May 25th, 2004 APT Configuration Management Jesse Doggett.
Making the System Operational Implementation & Deployment
Unit 17: SDLC. Systems Development Life Cycle Five Major Phases Plus Documentation throughout Plus Evaluation…
TEAM FOUNDATION VERSION CONTROL AN OVERVIEW AND WALKTHROUGH By: Michael Mallar.
Source Control Repositories for Enabling Team Working Doncho Minkov Telerik Corporation
1 Ivan Marsic Rutgers University LECTURE 2: Software Configuration Management.
Version Control How and why to control changes in a software artifact.
Open source development model and methodologies.
Configuration Management
EGR 115 Introduction to Computing for Engineers
LECTURE 2: Software Configuration Management
Quality Assurance: Early Work Items
Configuration Management
Subversion User Training
Configuration Management
Maintaining software solutions
LECTURE 3: Software Configuration Management
Making the System Operational Implementation & Deployment
Dynamic Process for Source Control
Chapter 25 – Configuration Management
1.2 System Design Basics.
Software Verification, Validation, and Acceptance Testing
Version Control CS169 Lecture 7 Prof. Aiken CS 169 Lecture 7.
Dr. Ralph D. Westfall April, 2010
Bringing more value out of automation testing
Overview Activities from additional UP disciplines are needed to bring a system into being Implementation Testing Deployment Configuration and change management.
Chapter 15 Debugging.
Presentation transcript:

Version Control CS169 Lecture 7 Prof. Aiken CS 169 Lecture 7 1

Outline What is version control? And why use it? Scenarios Prof. Aiken CS 169 Lecture 7 2

All Software Has Multiple Versions Different releases of a product Variations for different platforms Hardware and software Versions within a development cycle Test release with debugging code Alpha, beta of final release Each time you edit a program Prof. Aiken CS 169 Lecture 7 3

Version control tracks multiple versions In particular, allows old versions to be recovered multiple versions to exist simultaneously Prof. Aiken CS 169 Lecture 7 4

Why Use Version Control? Because everyone does A basic software development tool Because it is useful You will want old/multiple versions Without version control, can’t recreate project history Prof. Aiken CS 169 Lecture 7 5

Scenario I: Bug Fix Time Rele ases 1.0 First public release of the hot new product Rele ases Prof. Aiken CS 169 Lecture 7 6

Scenario I: Bug Fix Time Rele ases 1.0 1.3 Internal development continues, progressing to version 1.3 Rele ases 1.0 1.3 Prof. Aiken CS 169 Lecture 7 7

Scenario I: Bug Fix Time Rele ases 1.0 1.3 1.0 bugfix A fatal bug is discovered in the product (1.0), but 1.3 is not stable enough to release. Solution: Create a version based on 1.0 with the bug fix. Rele ases 1.0 1.3 1.0 bugfix Prof. Aiken CS 169 Lecture 7 8

Scenario I: Bug Fix Time Rele ases 1.0 1.3 1.0 bugfix Note that there are now two lines of development beginning at 1.0. This is branching. Rele ases 1.0 1.3 1.0 bugfix Prof. Aiken CS 169 Lecture 7 9

Scenario I: Bug Fix Time Rele ases 1.0 1.3 1.4 1.0 bugfix The bug fix should also be applied to the main code line so that the next product release has the fix. Time Rele ases 1.0 1.3 1.4 1.0 bugfix Prof. Aiken CS 169 Lecture 7 10

Scenario I: Bug Fix Time Rele ases 1.0 1.3 1.4 1.0 bugfix Note that two separate lines of development come back together in 1.4. This is merging or updating. Time Rele ases 1.0 1.3 1.4 1.0 bugfix Prof. Aiken CS 169 Lecture 7 11

Scenario II: Normal Development You are in the middle of a project with three developers named a, b, and c. Time Rele ases 1.5 Prof. Aiken CS 169 Lecture 7 12

Scenario II: Normal Development At the beginning of the day everyone checks out a copy of the code. A check out is a local working copy of a project, outside of the version control system. Logically it is a (special kind of) branch. Time Rele ases 1.5a 1.5b 1.5c 1.5 Prof. Aiken CS 169 Lecture 7 13

Scenario II: Normal Development The local versions isolate the developers from each other’s possibly unstable changes. Each builds on 1.5, the most recent stable version. Time Rele ases 1.5a 1.5 1.5b 1.5c Prof. Aiken CS 169 Lecture 7 14

Scenario II: Normal Development At 4:00 pm everyone checks in their tested modifications. A check in is a kind of merge where local versions are copied back into the version control system. Time Rele ases 1.5a 1.6 1.5 1.5b 1.5c Prof. Aiken CS 169 Lecture 7 15

Scenario II: Normal Development In many organizations check in automatically runs a test suite against the result of the check in. If the tests fail the changes are not accepted. This prevents a sloppy developer from causing all work to stop by, e.g., creating a version of the system that does not compile. Time Rele ases 1.5a 1.5 1.5b 1.6 1.5c Prof. Aiken CS 169 Lecture 7 16

Scenario III: Debugging You develop a software system through several revisions. Time Rele ases 1.5 1.6 1.7 Prof. Aiken CS 169 Lecture 7 17

Scenario III: Debugging In 1.7 you suddenly discover a bug has crept into the system. When was it introduced? With version control you can check out old versions of the system and see which revision introduced the bug. Time Rele ases 1.5 1.6 1.7 Prof. Aiken CS 169 Lecture 7 18

Scenario IV: Libraries Time You are building software on top of a third-party library, for which you have source. Rele ases Library A Prof. Aiken CS 169 Lecture 7 19

Scenario IV: Libraries Time You begin implementation of your software, including modifications to the library. Rele ases Library A 0.7 Prof. Aiken CS 169 Lecture 7 20

Scenario IV: Libraries Time A new version of the library is released. Logically this is a branch: library development has proceeded independently of your own development. Rele ases Library A 0.7 Library B Prof. Aiken CS 169 Lecture 7 21

Scenario IV: Libraries Time You merge the new library into the main code line, thereby applying your modifications to the new library version. Rele ases Library A 0.7 0.8 Library B Prof. Aiken CS 169 Lecture 7 22