Version Control CS 40800 These slides were created by Kevin Schenk, BS in Computer Science, Purdue University, 2012.

Slides:



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

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.
Source Control in MATLAB A tool for tracking changes in software development projects. Stuart Nelis & Rachel Sheldon.
David Notkin Autumn 2009 CSE303 Lecture 22 Subversion is an open source version control system. Social Implications Friday version control system.
2/6/2008Prof. Hilfinger CS164 Lecture 71 Version Control Lecture 7.
Source Control Repositories for Enabling Team Working Svetlin Nakov Telerik Corporation
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.
Version control Using Git 1Version control, using Git.
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.
Revision Control and Issue Tracking Andrew Watkins.
Version Control with Subversion Quick Reference of Subversion.
Introduction to Versioning
Source Control Systems SVN, Git, GitHub SoftUni Team Technical Trainers Software University
Git – versioning and managing your software L. Grewe.
Subversion (SVN) Tutorial for CS421 Dan Fleck Spring 2010.
Version control Using Git Version control, using Git1.
Subversion (SVN) Tutorial Source:
Version Control Systems with Subversion (SVN) and Tortoise.
SENG 403 Tutorial 1 1SENG 403 – Winter Agenda Version Control Basics Subversion Basic actions in Subversion Some examples 2SENG 403 – Winter 2012.
Version Control with SVN Images from TortoiseSVN documentation
QUICK START OF GITHUB Lin Shuo-Ren 2013/3/6 1. Why We Should Control The Version Although it rains, throw not away your watering pot. All changes should.
Version Control Systems. Version Control Manage changes to software code – Preserve history – Facilitate multiple users / versions.
Introduction to Git Yonglei Tao GVSU. Version Control Systems  Also known as Source Code Management systems  Increase your productivity by allowing.
1 CSE 303 Lecture 19 Version control and Subversion ( svn ) slides created by Marty Stepp
Subversion (SVN) Tutorial for CS421 Dan Fleck Spring 2010.
Information Systems and Network Engineering Laboratory I DR. KEN COSH WEEK 1.
Introduction to Git - Chirag Dani. Objectives Basics of Git Understanding different “Mindset of Git” Demo - Git with Visual Studio.
Source Control Repositories for Enabling Team Working Doncho Minkov Telerik Corporation
GitHub A web-based Git repository hosting service.
GIT Version control. Version Control Sharing code via a centralized DB Also provides for Backtracking (going back to a previous version of code), Branching.
Source Control Dr. Scott Schaefer. Version Control Systems Allow for maintenance and archiving of multiple versions of code / other files Designed for.
CSE 390 Lecture 9 Version control and Subversion (svn)
Version Control Systems
CompSci 230 Software Construction
CS5220 Advanced Topics in Web Programming Version Control with Git
Source Control Systems
Information Systems and Network Engineering Laboratory II
Source Control Systems
Git and GitHub primer.
Version Control with Subversion
SVN intro (review).
LECTURE 2: Software Configuration Management
Source Control Dr. Scott Schaefer.
Version Control CS These outstanding slides were created by Kevin Schenk, BS in Computer Science, Purdue University, 2012.
Version Control with Subversion (SVN)
Delphi or C++ Builder, with Subversion and Jenkins
Version control and Subversion (svn)
Version control, using Git
CS5220 Advanced Topics in Web Programming Version Control with Git
Development and Deployment
Version Control with Git and GitHub
Version Control Systems
Concurrent Version Control
Version Control System
LECTURE 3: Software Configuration Management
Subversion Basics Guide
CSE 390 Lecture 9 Version control and Subversion (svn)
Git CS Fall 2018.
Prof. Hilfinger CS164 Lecture 4
CSE 390 Lecture 9 Version control and Subversion (svn)
Version control and Subversion (svn)
Version control and Subversion (svn)
Systems Analysis and Design I
Version control and Subversion (svn)
Presentation transcript:

Version Control CS 40800 These slides were created by Kevin Schenk, BS in Computer Science, Purdue University, 2012.

What is version control? Version control (or revision control) is the term for the management of source files, and all of the intermediate stages as development proceeds. A version control system is a repository of files. Every change made to the source is tracked, along with who made the change, etc. Other items can be kept in a version control system in addition to source files -- Project Charter, Product Backlog, Test Plan, Inspection log, Testing log, ….

Version Control Examples

Why is version control important? Version control allows us to: Keep everything of importance in one place Manage changes made by the team Track changes in the code and other items Avoid conflicting changes

Features of Version Control Reversion: If you make a change, and discover it is not viable, how can you revert to a code version that is known to be good? Change/Bug Tracking: You know that your code has changed; but do you know who did it, when, and why? Sometimes this is where a bug was introduced? Branches: How to introduce a completely new feature or concept and not mess up the working code? Merging branches: If I divided the code, how to merge new code with good old code and not mess up

Committing Code Commit: the action of writing or merging the changes made in the working copy back to the repository Trunk: The unique line of development that is not a branch (sometimes called the baseline or mainline) Head: The most recent commit Main Trunk Apple Apple Orange Apple Orange Banana Apple Orange Strawberry Revision 1 Revision 2 Revision 3 Revision 4 (HEAD)

Committing Code (SVN) To add the file to the repository: To check-in (commit) the file: The -m flag is the message to use for this check-in. Note: Subversion (svn) commands are described in http://www.yolinux.com/TUTORIALS/Subversion.html svn add list.txt svn ci list.txt –m “Changed the list”

Checking Out & Editing Code Main Trunk Apple Orange Banana Revision 3 Check Out Apple Orange Strawberry Revision 4 Apple Orange Strawberry Working Copy Revert Check In (Commit)

Checking Out Code (SVN) To get the latest version: To throw away changes: To check out a particular version: svn checkout list.txt svn revert list.txt svn checkout –r2 list.txt

Branching Code A set of files under version control may be branched (or forked) at a point in time so that, from that time forward, two (or more!) copies of a file may develop in different ways independently of each other. Apple Grape Apple Grape Cherry Revision 5 Revision 6 Branch Main Trunk Apple Grape Apple Grape Kiwi In SVN: svn copy /path/to/trunk /path/to/branch Revision 4 Revision 7

Merging Code Apple Grape Apple Grape Cherry Branch Main Trunk Apple Revision 5 Revision 6 Branch Main Trunk Apple Grape Apple Grape Kiwi Apple Grape Kiwi Cherry +Kiwi +Cherry Revision 4 Revision 7 In SVN: Revision 8 svn merge –r6:7 /path/to/branch

Conflicts A conflict occurs when different parties make changes to the same document, and the system is unable to reconcile the changes. A user must resolve the conflict by combining or manually editing the changes. Apple Grape Cherry Check In Revision 4* (Bob) Apple Grape Apple Grape Cherry Main Trunk Revision 4 Revision 5 Apple Kiwi Check In Conflict Revision 4* (Alice)

Version Control Requirement in CS 40800 Each team must use some version control system. You must use a repository which requires authentication. This is so that no other team can gain access to your repository. In addition to turning in documents on BlackBoard, teams will also commit their documents and code to their repository Give your Project Coordinator access to view your repository

GitHub GitHub is a web-based hosting service for software development projects that use the Git revision control system GitHub <https://github.com> GitHub offers free accounts for open source projects

GitHub GitHub Documentation <https://help.github.com> GitHub is the most popular open source code repository site We suggest you use GitHub to gain experience with it Employers, startups, and hackathons increasingly use Github

Bitbucket Bitbucket is a web-based hosting service for projects that use either the Git or Mercurial revision control systems Bitbucket <https://bitbucket.org> Bitbucket Free Academic Accounts <http://blog.bitbucket.org/2012/08/20/bitbucket- academic> Bitbucket Documentation <https://confluence.atlassian.com/display/BITBUCKET/ Bitbucket+Documentation+Home>

Version Control References Subversion (SVN) - http://subversion.apache.org TortoiseSVN (Windows) - http://tortoisesvn.tigris.org Concurrent Version Systems (CVS) - http://savannah.nongnu.org/projects/cvs Git - http://git-scm.com GitHub (Mac & Windows) – http://www.github.com TortoiseGit (Windows) - http://code.google.com/p/tortoisegit Mercurial - http://mercurial.selenic.com RabbitVCS (Linux) - http://www.rabbitvcs.org