Introduction to Software Engineering (2+1 SWS) Winter Term 2009 / 2010 Dr. Michael Eichberg Vertretungsprofessur Software Engineering Department of

Similar documents
Version Control. Version Control

CISC 275: Introduction to Software Engineering. Lab 5: Introduction to Revision Control with. Charlie Greenbacker University of Delaware Fall 2011

Revision control systems (RCS) and

Advanced Computing Tools for Applied Research Chapter 4. Version control

Software Configuration Management. Context. Learning Objectives

Version Control! Scenarios, Working with Git!

Version Control with Git. Kate Hedstrom ARSC, UAF

CPSC 491. Today: Source code control. Source Code (Version) Control. Exercise: g., no git, subversion, cvs, etc.)

Version control. HEAD is the name of the latest revision in the repository. It can be used in subversion rather than the latest revision number.

CSE 374 Programming Concepts & Tools. Laura Campbell (Thanks to Hal Perkins) Winter 2014 Lecture 16 Version control and svn

Version Control with Svn, Git and git-svn. Kate Hedstrom ARSC, UAF

Version Control with Git. Linux Users Group UT Arlington. Rohit Rawat

Version Control for Computational Economists: An Introduction

Introduction to Version Control

Version Control with Subversion

Software configuration management

Source Control Systems

Work. MATLAB Source Control Using Git

Distributed Version Control with Mercurial and git

Version Control with Git. Dylan Nugent

Git Basics. Christopher Simpkins Chris Simpkins (Georgia Tech) CS 2340 Objects and Design CS / 22

Continuous Integration. CSC 440: Software Engineering Slide #1

Git Basics. Christian Hanser. Institute for Applied Information Processing and Communications Graz University of Technology. 6.

Git. A Distributed Version Control System. Carlos García Campos carlosgc@gsyc.es

Version Control Systems

Version Control with Git

Introduction to the Git Version Control System

Continuous Integration

An Introduction to Mercurial Version Control Software

Two Best Practices for Scientific Computing

Version Control Systems: SVN and GIT. How do VCS support SW development teams?

Version Control. Luka Milovanov

CS 2112 Lab: Version Control

Miguel A. Figueroa Villanueva Xabriel J. Collazo Mojica. ICOM 5047 Capstone Miguel A. Figueroa Villanueva University of Puerto Rico Mayagüez Campus

Software Delivery Integration and Source Code Management. for Suppliers

PKI, Git and SVN. Adam Young. Presented by. Senior Software Engineer, Red Hat. License Licensed under

Distributed Version Control

CSCB07 Software Design Version Control

Data management on HPC platforms

Version Control Tutorial using TortoiseSVN and. TortoiseGit

Version Control Tools

Annoyances with our current source control Can it get more comfortable? Git Appendix. Git vs Subversion. Andrey Kotlarski 13.XII.

Software Configuration Management and Continuous Integration

Theme 1 Software Processes. Software Configuration Management

Gitflow process. Adapt Learning: Gitflow process. Document control

Version control with GIT

Version Uncontrolled! : How to Manage Your Version Control

Software Configuration Management. Slides derived from Dr. Sara Stoecklin s notes and various web sources.

DAVE Usage with SVN. Presentation and Tutorial v 2.0. May, 2014

Redmine: A project management software tool. January, 2013

UNIVERSITY OF CALIFORNIA Department of Electrical Engineering and Computer Sciences Computer Science Division. P. N. Hilfinger

Software Engineering I (02161)

Maven or how to automate java builds, tests and version management with open source tools

Version Control with. Ben Morgan

Source code management systems

Content. Development Tools 2(63)

SOFTWARE DEVELOPMENT BASICS SED

What CCPForge does Introduction to SESC and CCPForge Workshop Gemma Poulter

Beginning with SubclipseSVN

Introduction to Git. Markus Kötter Notes. Leinelab Workshop July 28, 2015

Beginners guide to continuous integration. Gilles QUERRET Riverside Software

Introduction to Version Control with Git

GECKO Software. Introducing FACTORY SCHEMES. Adaptable software factory Patterns

Introducing Xcode Source Control

Software development. Outline. Outline. Version control. Version control. Several users work on a same project. Collaborative software development

Software Development. Overview.

Software Version Control With Mercurial and Tortoise Hg

Version Control with Git

Introduc)on to Version Control with Git. Pradeep Sivakumar, PhD Sr. Computa5onal Specialist Research Compu5ng, NUIT

Continuous Integration

Xcode Source Management Guide. (Legacy)

Version Control using Git and Github. Joseph Rivera

Mobile Development with Git, Gerrit & Jenkins

Introduction to Programming Tools. Anjana & Shankar September,2010

Software Continuous Integration & Delivery

Beginner s guide to continuous integration. Gilles QUERRET Riverside Software

Version Control with Mercurial and SSH

Version Control with Subversion and Xcode

A Survey of Version Control Systems

Nexus Professional Whitepaper. Repository Management: Stages of Adoption

Source Code Control & Bugtracking

Version control with Subversion

Software Configuration Management. Addendum zu Kapitel 13

S609. RDz and Source Control Management Systems

Modulo II Software Configuration Management - SCM

Case Study: Access control 1 / 39

Using Git for Project Management with µvision

Transcription:

Introduction to Software Engineering (2+1 SWS) Winter Term 2009 / 2010 Dr. Michael Eichberg Vertretungsprofessur Software Engineering Department of Computer Science Technische Universität Darmstadt

Dr. Michael Eichberg Fachgebiet Software Engineering Department of Computer Science Technische Universität Darmstadt Introduction to Software Engineering Computer Aided Software Engineering

Dr. Michael Eichberg Fachgebiet Software Engineering Department of Computer Science Technische Universität Darmstadt Introduction to Software Engineering Revision-control Systems

Making Sense of 4 Recommended Reading Source: Author: ACM Queue Bryan D Sullivan

All types of revision-control systems support a basic set of tasks. 5 Track the history of files This enables you to answer questions such as: Who did which changes? When was a change made? Why was a change made? Recreate project state...

All types of revision-control systems support a basic set of tasks. 6... People can work on independent sub-projects (usually referred to as branches) Branches are typically used to manage the maintenance of releases that are no longer actively developed RCS enables you to integrate changes made in a subproject back into the main project

Branches & Merging 7 BAT3XML

Typical issues related to branching and merging 8 The same section is modified in different ways Code in a branch depends on functionality that has changed in the other branch (Most likely, the project will break when merged.) Files are copied and / or renamed and someone wants to check in some changes w.r.t. the old file How branches and merges are handled differs significantly between different types of revision-control systems.

We can distinguish between two basic types of revision-control systems: centralized and distributed. 9 Centralized CVS Subversion (SVN) Perforce Distributed Git Mercurial

Both types of revision-control systems have different trade-offs. Centralized Distributed 10 Client-server model; a single server hosts a project s metadata commits are server based no explicit support for branches; branches are handled by convention better suited for binary data enable fine-grained rights management Operate in a peer-to-peer manner each copy (repository) contains all of a project s history and metadata a working copy contains a snapshot of the project s files commits are local until they are shared fetching remote changes and merging them with the local copy is decoupled

Git s / Mercurial s bisect command facilitates finding bugs. 11 does not contain the specific bug 1. checkout by bisect Question: Does this version contain the bug? No, use revision (L+X)/2 2. checkout by bisect Question: Does this version contain the bug? Yes, revision that introduced the bug is found contains a specific bug Revision A L X Time