Week 2 DUE This Week: Safety Form and Model Release DUE Next Week: Project Timelines and Website Notebooks Lab Access SharePoint Usage Subversion Software.

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.
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, Revision Control Software Configuration Management.
Version Control System Sui Huang, McMaster University Version Control SystemSui Huang, McMaster University Version Control System -- base on Subversion.
Version Control What it is and why you want it. What is Version Control? A system that manages changes to documents, files, or any other stored information.
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.
Version Control Systems Phil Pratt-Szeliga Fall 2010.
Low level CASE: Source Code Management. Source Code Management  Also known as Configuration Management  Source Code Managers are tools that: –Archive.
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.
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.
Version Control. What is Version Control? Manages file sharing for Concurrent Development Keeps track of changes with Version Control SubVersion (SVN)
Source Code Revision Control Software CVS and Subversion (svn)
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 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.
Introduction to Version Control
The Design Workshop Introduction to Version Control 1.
Version Control with Subversion Quick Reference of Subversion.
With Mercurial and Progress.   Introduction  What is version control ?  Why use version control ?  Centralised vs. Distributed  Why Mercurial ?
1 Lecture 19 Configuration Management Software Engineering.
Git – versioning and managing your software L. Grewe.
Subversion (SVN) Tutorial for CS421 Dan Fleck Spring 2010.
Warmup A programmer’s wife tells him, “Would you mind going to the store and picking up a loaf of bread? Also, if they have eggs, get a dozen.” The programmer.
Source Control How to be the 1337 in project management source control.
Version control Using Git Version control, using Git1.
Information Systems and Network Engineering Laboratory II DR. KEN COSH WEEK 1.
Object-Oriented Analysis & Design Subversion. Contents  Configuration management  The repository  Versioning  Tags  Branches  Subversion 2.
(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.
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.
CSE 219 Computer Science III CVS
1 Brief Introduction to Revision Control Ric Holt.
Refactoring and Synchronization with the StarTeam Plug-in for Eclipse  Jim Wogulis  Principal Architect, Borland Software Corporation.
Version Control Systems. Version Control Manage changes to software code – Preserve history – Facilitate multiple users / versions.
Version Control Reducing risk with version control Jon Austin
Intro to Git presented by Brian K. Vagnini Hosted by.
Sabriansyah R.A Version Control. The Repository Subversion adalah sistem tersentralisasi untuk informasi sharing Repository adalah pusat penyimpanan data.
Version Control System
Version Control and SVN ECE 297. Why Do We Need Version Control?
Introduction to Git Yonglei Tao GVSU. Version Control Systems  Also known as Source Code Management systems  Increase your productivity by allowing.
Visual Source Safe –A Quick Tour. CONTENTS What is VSS ? How to install VSS ? How does VSS track versions? VSS Concepts & Features Utilities available.
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.
Source Control Repositories for Enabling Team Working Doncho Minkov Telerik Corporation
NALINI S. NAUTIYAL SYSTEM SOFTWARE DIVISION Subversion.
DIGITAL REPOSITORIES CGDD Job Description… Senior Tools Programmer – pulled August 4 th, 2011 from Gamasutra.
1 Subversion Kate Hedstrom April Version Control Software System for managing source files –For groups of people working on the same code –When.
Source Control Dr. Scott Schaefer. Version Control Systems Allow for maintenance and archiving of multiple versions of code / other files Designed for.
4 Version control (part 1)
Information Systems and Network Engineering Laboratory II
Version Control with Subversion
SVN intro (review).
LECTURE 2: Software Configuration Management
Source Control Dr. Scott Schaefer.
Version Control with Subversion (SVN)
Version control, using Git
Concurrent Version Control
Version Control System
Source Code Management
Subversion Basics Guide
Introduction to Version Control with Git
Systems Analysis and Design I
Presentation transcript:

Week 2 DUE This Week: Safety Form and Model Release DUE Next Week: Project Timelines and Website Notebooks Lab Access SharePoint Usage Subversion Software Conventions and Documentation (Grading)

Subversion ©David Turner

What is Subversion? Subversion is a version control system. A version control system allows users to manage files, directories, and the changes made to them. Subversion can manage any sort of file collection (not only source code).

Working copy Repository Internet

Reasons to Use Subversion You can work more easily with other developers on software development projects. You can undo changes to obtain earlier versions of files. Subversion is well known and free. Subversion has been under development since 2000.

Why SVN in EPICS? All software teams currently share an SVN server that is already ready to go SVN is still widely used in Purdue coursework The centralized nature is easy to comprehend and manage for new users of VCS (vs. Gits distributed repos) Less complicated than Git (and therefore less flexible)

Repository versus Working Copy Project code is stored in a server in a data store referred to as a repository. Developers check out copies of the project code into their local environments. These copies are referred to as working copies. After making changes to a working copy, the developer commits changes to the repository. Other developers get these changes by updating their working copies.

Differentials (Diffs) current version previous version previous to the previous version

Atomic commits A collection of modifications either goes into the repository completely, or not at all. In other words, a commit will either altogether succeed, or it will altogether fail.

Properties Each file and directory has a set of properties keys and their valuesassociated with it. You can keep certain files from being written into the repository by setting the svn:ignore property to a string that matches the files you want to omit. Such files are said to be unversioned. IMPORTANT: Properties like permissions may not sync correctly without being explicit

Multiple Developers: Old Style User A gets a copy of file X from the data store. User B gets a copy of file X from the data store. User A changes X and writes the new X back into the data store. User B changes his older version of X and writes this into the data store, over-writing A s changes.

Multiple Developers: Copy-Modify-Merge Subversion uses a copy-modify-merge approach instead of locking. User A gets a working copy of X. User B gets a working copy of X. User A changes his working copy of X. User B changes her working copy of X. A saves his copy of X into the repository. B tries to save his copy of X into the repository, but it fails, because her changes were made to a now stale version of X B performs an update, which results in A s changes to X to be merged into B s version of X. If A s changes do not conflict with B s changes, the update silently completes. If A s changes conflict with B s changes, subversion inserts annotation into X describing the conflicts and then reports the problem to B. B then manually resolves the conflict. Whether B needed to manually resolve conflicts or not, the next step is for B to commit her changes into the repository, which now succeeds.

Copy-Modify-Merge in Practice With copy-modify-merge, users do not wait on each other. In practice, conflicts are rare and are usually straightforward to resolve. Copy-modify-merge does not work well with binary files, because changes can not be merged. For this reason, subversion provides a lock-modify-unlock process when needed.

Revisions Subversion transactions are atomic: they either succeed entirely or fail entirely After the repository is initially created, it is an empty folder and has revision number 0. After committing to a repository with revision number n, the repository is changed to version n+1.

Revisions and Working Copies Working copies do not always correspond to any single revision of the repository; they may contain files from several different revisions.

Revisions and Working Copies User A checks out repository repo. repo/system.h3 repo/system.cpp3 User A modifies system.h and commits this file. repo/system.h4 repo/system.cpp3 User B commits changes to system.cpp, and A updates. repo/system.h5 repo/system.cpp5

Local File States and Consequences updatecommit Unchanged, and current does nothing Locally changed, and current does nothingwrites changes into repo Unchanged, and out-of-date replaces working file with new one does nothing Locally changed, and out-of-date merges changes into working file operation fails with out-of-date error

Branching and Merging Something to note, but may not run into often for our Projects Branches represent different timelines of the repository that can be merged later on. Useful for a lot of changes to the trunk Useful for splitting up large modular features Git is all about merging and branching especially locally