CSE 303 Concepts and Tools for Software Development

Slides:



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

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.
1. What is Subversion? Why do we need CM? Basic concepts Repositories Options Setup Clients Options Setup Operation Troubleshooting Slide 2.
David Notkin Autumn 2009 CSE303 Lecture 22 Subversion is an open source version control system. Social Implications Friday version control system.
Using subversion COMP 2400 Prof. Chris GauthierDickey.
CS 501 : An Introduction to SCM & GForge An Introduction to SCM & GForge Lin Guo
Low level CASE: Source Code Management. Source Code Management  Also known as Configuration Management  Source Code Managers are tools that: –Archive.
Source Control Repositories for Enabling Team Working Svetlin Nakov Telerik Corporation
SubVersioN – the new Central Service at DESY by Marian Gawron.
By Steven Campbell and Erik Boone.  Sharing projects by putting them into a central repository.  Checking out copies of projects from the repository.
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)
Git for Version Control These slides are heavily based on slides created by Ruth Anderson for CSE 390a. Thanks, Ruth! images taken from
Subversion. What is Subversion? A Version Control System A successor to CVS and SourceSafe Essentially gives you a tracked, shared file system.
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 ?
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.
Object-Oriented Software Engineering Using UNIX groups and Subversion Estimated Time: minutes “Unix is user-friendly. It's just very selective about.
ITEC 370 Lecture 16 Implementation. Review Questions? Design document on F, feedback tomorrow Midterm on F Implementation –Management (MMM) –Team roles.
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.
Subversion (SVN) A Revision Control System Successor to CVS Carlos Armas Hervey Allen.
Copyright © 2015 – Curt Hill Version Control Systems Why use? What systems? What functions?
CSE 219 Computer Science III CVS
Refactoring and Synchronization with the StarTeam Plug-in for Eclipse  Jim Wogulis  Principal Architect, Borland Software Corporation.
Sabriansyah R.A Version Control. The Repository Subversion adalah sistem tersentralisasi untuk informasi sharing Repository adalah pusat penyimpanan data.
12 CVS Mauro Jaskelioff (originally by Gail Hopkins)
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.
Version control and Subversion (svn)
1 CSE 303 Lecture 19 Version control and Subversion ( svn ) slides created by Marty Stepp
CSE 374 Programming Concepts & Tools Hal Perkins Fall 2015 Lecture 16 – Version control and git.
Subversion (SVN) Tutorial for CS421 Dan Fleck Spring 2010.
Source Control Repositories for Enabling Team Working Doncho Minkov Telerik Corporation
1 Subversion Kate Hedstrom April Version Control Software System for managing source files –For groups of people working on the same code –When.
Problem Solving With C++ SVN ( Version Control ) April 2016.
CS491A Software Design Lab Version Control with CVS and Subversion Chengyu Sun California State University, Los Angeles.
Version Control Using Subversion Tom Hilinski Natural Resource Ecology Laboratory Colorado State University October 2007
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)
CompSci 230 Software Construction
Version Control CS These slides were created by Kevin Schenk, BS in Computer Science, Purdue University, 2012.
Version Control with Subversion
SVN intro (review).
Source Control Dr. Scott Schaefer.
CSE 374 Programming Concepts & Tools
Version Control CS These outstanding slides were created by Kevin Schenk, BS in Computer Science, Purdue University, 2012.
Subversion Reasons to use How it works Subversion important commands
Version Control with Subversion (SVN)
Version control and Subversion (svn)
Software Engineering for Data Scientists
Subversion.
Concurrent Version Control
CSE 303 Concepts and Tools for Software Development
Source Code Management
Compilers, Make and SubVersion
Subversion Basics Guide
CSE 303 Concepts and Tools for Software Development
CSE 390 Lecture 9 Version control and Subversion (svn)
Using Github.
Git CS Fall 2018.
CSE 303 Concepts and Tools for Software Development
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:

CSE 303 Concepts and Tools for Software Development CSE 303 Lecture 18 11/15/2006 CSE 303 Concepts and Tools for Software Development Richard C. Davis UW CSE – 11/15/2006 Lecture 18 – Version Control Systems

Administravia Choose partners by 11PM today E-mail choice to Lincoln Ritter E-mail Richard Davis if you can't choose Excellent Specification/Testing Tools Doxygen - for Javadoc-like specifications Unit testing systems CUnit, CppUnit, JUnit, CsUnit Links to all on CSE 303 Documentation Wiki (At the very bottom) 11/15/2006 CSE 303 Lecture 18

Administravia Monday: Societal Implications HW6 Digital Rights Management Read paper and turn in brief summary Only one or two sentences! This reading is a bit longer HW6 Available this afternoon Due one week from today So you can have Thanksgiving off 11/15/2006 CSE 303 Lecture 18

Tip of the Day File changed on disk, Emacs doesn't know Use M-x revert-buffer 11/15/2006 CSE 303 Lecture 18

Last Time Basic Software Engineering Development Process Specification Unit Testing and Stubs 11/15/2006 CSE 303 Lecture 18

Today Version Control Systems Subversion 11/15/2006 CSE 303 Lecture 18

From School to The Real World Programming in School You usually work alone Your programs survive a few weeks at most Working in groups? E-mail files or sit at same computer Programming in the Real World Your team is large (possibly huge) Programs stay around for many years Often long after original developers are gone How do you manage? 11/15/2006 CSE 303 Lecture 18

Code Management Problems Delete/re-arrange a large segment of code Then decide you shouldn't have Many people working concurrently Often working on the same files Sometimes make incompatible changes Need to do maintenance on old versions But can't stop working on new version 11/15/2006 CSE 303 Lecture 18

Version Control Systems Reliable backup of important information Tools for "rolling back" to previous versions Manage concurrent changes Possibly help resolve conflicts Many alternatives Subversion - we'll use this one CVS - heavily used in this department RCS, SourceSafe, ClearCase Note: These tools are not just for code!! 11/15/2006 CSE 303 Lecture 18

Subversion: Basics Repository checkout checkout checkout Alice's Local Copy Bob's Local Copy Craig's Local Copy 11/15/2006 CSE 303 Lecture 18

Subversion: Basics Repository commit update update Alice's Local Copy Bob's Local Copy Craig's Local Copy 11/15/2006 CSE 303 Lecture 18

The Repository There exists one Subversion Repository Common tasks Holds master copy of all files Hopefully backed up In new versions, only differences are kept It's just a directory with special files Can set up so it's accessible via Web/SSH Common tasks Set up a repository: svnadmin create Put a project into a repository: svn import Check out project from a repository: svn checkout 11/15/2006 CSE 303 Lecture 18

What Goes Into a Repository? Keep ONLY files needed to build program Things to Keep Source files, documentation, resources .c, .cpp, .h, Makefile Things not to Keep Files generated automatically Your executable, .o files 11/15/2006 CSE 303 Lecture 18

Working With the Repository Examples Set up a repository svnadmin create repos Put a project into a repository svn import . file:///homes/rcd/repos/myproj svn import hw6 file:///homes/rcd/repos/hw6 Check out project from a repository svn checkout file:///homes/rcd/repos/hw6 svn checkout file:///homes/rcd/repos/hw6 dirname 11/15/2006 CSE 303 Lecture 18

Developer Work Cycle Most common commands (svn command) Update working copy update Make changes add, delete, copy, move Examine your changes: status, diff, revert Merge other's changes: update, resolved Commit your changes: commit 11/15/2006 CSE 303 Lecture 18

Usage Examples Updating Making changes Examine your changes: svn update Making changes svn add file.cpp svn move file.cpp newname.cpp svn delete newname.cpp Examine your changes: svn status svn diff file.cpp svn revert file.cpp Commit your changes: svn commit -m "Commit Message" 11/15/2006 CSE 303 Lecture 18

Conflicts Many people editing at the same time Conflicts can occur Subversion tries to merge automatically If it can't, you must resolve the conflict 11/15/2006 CSE 303 Lecture 18

Dealing with Conflicts Discovering Conflicts svn commit fails Do svn update to get version in repository "G" means the automatic merge succeeded "C" means you have to resolve conflict Resolving Conflicts look for <<<<< in file run svn resolved file 11/15/2006 CSE 303 Lecture 18

Other Details Getting help with a command svn help command svnadmin help command 11/15/2006 CSE 303 Lecture 18

CVS is Subversion-- CVS Problems Otherwise, very similar Has version numbers for individual files What was version of foo.c when bar.c was 1.2? Can't rename or delete files Well, you can, but you lose the history Doesn't handle binary files well Otherwise, very similar cvs instead of svn, cvs init instead of svnadmin create Different ways to specify repository CVS uses -d repository Subversion uses file:///full/path/to/repository Missing cmds: delete, copy, move, revert, resolved Modified cmds: status 11/15/2006 CSE 303 Lecture 18

Summary Managing code versions manually is hard Adding dates to filenames? Keeping multiple copies on disk? Version Control Systems Key tool for managing versions Store differences Prevent problems that come from Concurrent Access Deleting Information Can use for any type of information! 11/15/2006 CSE 303 Lecture 18

Reading Version Control with Subversion Online at http://svnbook.red-bean.com/en/1.2/ Ch1: Introduction Read section titled A Quick Start Ch2: Basic Concepts Ch3: Guided Tour Read or skim for commands described in lecture 11/15/2006 CSE 303 Lecture 18

Next Time Build Scripting and Makefiles 11/15/2006 CSE 303 Lecture 18