/ department of mathematics and computer sciencedepartment of mathematics and computer science technische universiteit eindhoven TU/e version control on.

Slides:



Advertisements
Similar presentations
1. What is Subversion? Why do we need CM? Basic concepts Repositories Options Setup Clients Options Setup Operation Troubleshooting Slide 2.
Advertisements

Warren Jones, Fluke Co., Eugene Kramer, Remedy Co. Introduction to CVS 1999 Concurrent Versions System Overview of CVS architecture. Repository structure.
Warren Jones, Fluke Co., Eugene Kramer, Remedy Co. Introduction to CVS 1999 Concurrent Versions System Overview of CVS architecture. Repository structure.
Version Control System (Sub)Version Control (SVN).
Let Use SVN(Subversion) Interaction Lab. Hyo-Geun Ahn
2-May-15 Version Control. 2 Why version control? Scenario 1: Your program is working You change “just one thing” Your program breaks You change it back.
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.
Using subversion COMP 2400 Prof. Chris GauthierDickey.
Source Code Revision Control with Subversion Christophe Dupré May 13, 2005 Update KEJ May 10, 2006 Scientific Computation Research Center Rensselaer Polytechnic.
CVS Selim Çıracı Ahmet Kara Metin Tekkalmaz. CVS – Open Source Version Control System Outline What are Version Control Systems? And why do we need them?
Version Control Systems Phil Pratt-Szeliga Fall 2010.
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.
Microsoft Visual Source Safe 6.01 Microsoft Visual Source Safe (MVSS) Presented By: Rachel Espinoza.
Source Code Management Or Configuration Management: How I learned to Stop Worrying and Hate My Co-workers Less.
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.
SubVersioN – the new Central Service at DESY by Marian Gawron.
Version Control. What is Version Control? Manages file sharing for Concurrent Development Keeps track of changes with Version Control 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
Section 6.1 Explain the development of operating systems Differentiate between operating systems Section 6.2 Demonstrate knowledge of basic GUI components.
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.
1 CVS Concurrent Versioning System CRASH COURSE! presented by Axel Polleres with improvements by Holger Lausen and Eyal Oren cf.
1 Topics for this Lecture Software maintenance in general Source control systems (intro to svn)
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 ?
Subversion (SVN) Tutorial for CS421 Dan Fleck Spring 2010.
FTP Server and FTP Commands By Nanda Ganesan, Ph.D. © Nanda Ganesan, All Rights Reserved.
Version control Using Git Version control, using Git1.
Chris Onions Getting started with CVS in ATLAS 11 Getting started with CVS in ATLAS Chris Onions (Tutorial based on that of Raúl Ramos Pollán CERN / IT.
Object-Oriented Analysis & Design Subversion. Contents  Configuration management  The repository  Versioning  Tags  Branches  Subversion 2.
An Intro to Concurrent Versions System (CVS) ECE 417/617: Elements of Software Engineering Stan Birchfield Clemson University.
Version Control Systems with Subversion (SVN) and Tortoise.
Copyright © 2015 – Curt Hill Version Control Systems Why use? What systems? What functions?
Progress with migration to SVN Part3: How to work with g4svn and geant4tags tools. Geant4.
SENG 403 Tutorial 1 1SENG 403 – Winter Agenda Version Control Basics Subversion Basic actions in Subversion Some examples 2SENG 403 – Winter 2012.
DireXions – Your Tool Box just got Bigger PxPlus Version Control System Using TortoiseSVN Presented by: Jane Raymond.
CVS – concurrent versions system Network Management Workshop intERlab at AIT Thailand March 11-15, 2008.
CSE 219 Computer Science III CVS
Configuring Sourceforge’s CVS to work with Forte (3.0 or later) on WindowsNT and Windows 2000 Specific for MAExplorer.sourceforge.net Written by Eric Shen,
By: Anuj Sharma. Topics covered:  GIT Introduction  GIT Benefits over different tools  GIT workflow  GIT server creation  How to use GIT for first.
Prepared by: Steve Teo Contributors: Tong Huu Khiem.
CVS – concurrent versions system AROC Guatemala July 19-23, 2010 Guatemala City, Guatemala.
1 CSE306 Operating Systems Projects CVS/SSH tutorial.
1 MSTE Visual SourceSafe For more information, see:
L.T.E :: Learning Through Experimenting Using google-svn for MtM Docs Development Denis Thibault Version 3.2 Mar 12 th, 2009.
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 System
Part 4: FCM and the UM University of Reading, December 2015.
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
CSE 374 Programming Concepts & Tools Hal Perkins Fall 2015 Lecture 16 – Version control and git.
Subversion (SVN) Tutorial for CS421 Dan Fleck Spring 2010.
Warren Jones, Fluke Co., Eugene Kramer, Remedy Co. Introduction to CVS 1999 Revised by David Svoboda 2003 Concurrent Versions System Overview of CVS architecture.
Source Control Repositories for Enabling Team Working Doncho Minkov Telerik Corporation
© CGI Group Inc. User Guide Subversion client TortoiseSVN.
1 Subversion Kate Hedstrom April Version Control Software System for managing source files –For groups of people working on the same code –When.
BIT 285: ( Web) Application Programming Lecture 07 : Tuesday, January 27, 2015 Git.
Version Control with Subversion
CVS – concurrent versions system
CVS – concurrent versions system
SVN intro (review).
User Guide Subversion client TortoiseSVN
CVS Concurrent Versioning System
Git started with git: 2018 edition
Concurrent Versions System
Presentation transcript:

/ department of mathematics and computer sciencedepartment of mathematics and computer science technische universiteit eindhoven TU/e version control on files with CVS demo / discussion hour HG 6.29 Nov 19, 2003 Reinier Post

/ department of mathematics and computer sciencedepartment of mathematics and computer science technische universiteit eindhoven TU/e CVS – Concurrent Versions System CVS is software for version control on directory trees with files.

/ department of mathematics and computer sciencedepartment of mathematics and computer science technische universiteit eindhoven TU/e version control on files Multiple versions of a file: for example a document you’re editing + a backup copy your document at home + a copy at work your version of a document + Harry’s version a copy of a webpage + the version you modified with your suggestions

/ department of mathematics and computer sciencedepartment of mathematics and computer science technische universiteit eindhoven TU/e version control on whole directory trees Multiple versions of directory trees full of files: a website a LaTeX document (single author or co-authored) the source code of a computer program a user software profile (config files, startup scripts, utilities)

/ department of mathematics and computer sciencedepartment of mathematics and computer science technische universiteit eindhoven TU/e demo 0: find some examples locate.oud; locate.old locate /home | grep -v '[~%v]$' | ~rp/bin/previsprefix most files are completely redundant - not worth saving! local copies of available files copied from elsewhere files generated by programs from other files temporary backup copies different versions of the same file: only partially redundant => version control problem: what to save, when, and where?

/ department of mathematics and computer sciencedepartment of mathematics and computer science technische universiteit eindhoven TU/e demo 1: diffdiff locatelocate /home/rp | grep -v '[~%v]$' | fgrep -v rpsoft | previsprefixgrepfgrepprevisprefix diff diff –u diff –r diff is a standard Unix tool (since the 70s) only useful on plain text files, including structured plaintext (source code, XML, etc.) if formatted uniformly

/ department of mathematics and computer sciencedepartment of mathematics and computer science technische universiteit eindhoven TU/e demo 2: patch diff –u diff –u a a.modified > a.diff rmrm a.modified patchpatch < a.diff # turns a into a.modified ! patch is a standard Unix tool (since the late 80s)since the late 80s only applicable when you can work with diffs allows “merging” different changes into single result

/ department of mathematics and computer sciencedepartment of mathematics and computer science technische universiteit eindhoven TU/e RCSRCS: version control on a file let user explicitly commit versions of a file remember all versions the user doesn’t remove be “clever”: save the diffs! every version has a number every version has an (optional) log message RCS can record info about the version in the file written in 1985, soon very popularwritten in 1985

/ department of mathematics and computer sciencedepartment of mathematics and computer science technische universiteit eindhoven TU/e demo 3: RCS locate /home/rp | grep RCS # on win.tue.nl Solaris/Linux # examine a,v file, you’ll see they are diffs main RCS commands: ci file# check current version of file in to file,v co file# check latest version of file out from file,v rcsdiff file# diff file with latest version in file,v

/ department of mathematics and computer sciencedepartment of mathematics and computer science technische universiteit eindhoven TU/e the power of RCS On a file in RCS you can ask questions like: is this copy the latest “good” version? to which “good” version (created when) does this copy correspond, if any? what are the diffs between June 1 st and today? is the copy I mailed to Harry older or newer than the copy on the website?

/ department of mathematics and computer sciencedepartment of mathematics and computer science technische universiteit eindhoven TU/e version control with RCS: properties working copy vs. repository the repository (file,v) holds versions of the working copy, but is not a working copy itself no automatic “tracking” of changes in working copies; the user is trusted to check versions in and out as appropriate this can lead to conflicts if multiple working copies are edited

/ department of mathematics and computer sciencedepartment of mathematics and computer science technische universiteit eindhoven TU/e limitations of RCS; CVS only works on single files single host: ci / co work on “local” file system => CVS (written in 1986 on top of RCS) =>written in 1986 on top of RCS RCS on a whole directory tree of files at once many extra features repositories can be remote (client/server) nice GUI clients and repository browsers availableGUI clients repository browsers

/ department of mathematics and computer sciencedepartment of mathematics and computer science technische universiteit eindhoven TU/e demo 4: CVS for private use cd ~/bin; cvs log main CVS commands: cvs ci file # check current version of file in to $CVSROOT cvs co file # check latest version of file out from $CVSROOT cvs up file # id., if a copy is already available cvs add file # put a file under version control in $CVSROOT cvs diff file # compare current copy of file with latest in $CVSROOT file can be a whole directory tree, $CVSROOT can be remote

/ department of mathematics and computer sciencedepartment of mathematics and computer science technische universiteit eindhoven TU/e demo 4 (continued) cd /tmp cvs –d /home/rp/cvs co scripts cd scripts rightperl rightperl bin/* cvs diff # on a different host: cd /tmp cvs –d co scripts # via ssh!

/ department of mathematics and computer sciencedepartment of mathematics and computer science technische universiteit eindhoven TU/e demo 5: the Tortoise CVS clientthe Tortoise CVS client a (free) GUI CVS client for Windows easier to use than the command line, but everything works the same way: right-click to get the initial menu, select CVS Checkout...right-click to get the initial menu, select CVS Checkout select the repository and communication method,select the repository and communication method inside the resulting directory you can CVS update and check in

/ department of mathematics and computer sciencedepartment of mathematics and computer science technische universiteit eindhoven TU/e demo 6: CVS for collaboration co-authoring papers: one author hosts the CVS repository gives other author(s) read/write access to it software development projects: (demo) petriweb.org: website, software & docs in CVS checked out automatically (using a CVSROOT/ feature)CVSROOT/

/ department of mathematics and computer sciencedepartment of mathematics and computer science technische universiteit eindhoven TU/e authentication for remote CVS servers with the :pserver: protocol: - the CVS server runs as one OS user - user accounts are managed in the CVS server - good for read-only access; too insecure for read-write access with :ext: (ssh): - with one CVS server user, slightly better than pserver - with arbitrary repositories for arbitrary groups of people, it requires a lot of account administration (SourceForge: every user can get a Unix account by registering)

/ department of mathematics and computer sciencedepartment of mathematics and computer science technische universiteit eindhoven TU/e demo 7: public CVS SourceForge ( ): over 70,000 CVS repositorieshttp://sf.net/ (pick one for a demo); mostly software development. Most of the world’s CVS repositories are elsewhere.

/ department of mathematics and computer sciencedepartment of mathematics and computer science technische universiteit eindhoven TU/e the power of CVS CVS allows to set up a single repository for all files in a project, with full version control. you always know where your “good” versions are and how they are related multi-user Internet wide (largely) platform independent (on MS Windows you can feel the Unix legacy)

/ department of mathematics and computer sciencedepartment of mathematics and computer science technische universiteit eindhoven TU/e CVS: properties working copy vs. repository the repository holds versions of the working copy, but is not a working copy itself no automatic “tracking” of changes; every user must check in and check out regularly; this can lead to conflicts if multiple working copies are edited this can lead to conflicts if multiple working copies are edited

/ department of mathematics and computer sciencedepartment of mathematics and computer science technische universiteit eindhoven TU/e CVS administrative files In the working copy: every directory has a subdirectory CVS/ with files used by CVS the file.cvsignore can be used to tell CVS to ignore files in the working copy that must not be in the repository.cvsignore In the repository: the CVSROOT/ directory contains many files with interesting configurable settingswith interesting configurable settings

/ department of mathematics and computer sciencedepartment of mathematics and computer science technische universiteit eindhoven TU/e CVS caveats cvs add only prepares to add files, you need to confirm with cvs ci, and on a directory follow that again with cvs up files can be explicitly marked as binary (see the manual) cvs can cope with the difference between Unix and Windows, but if files seem corrupted, check the CVS client settings If you have many conflicts (a working copy has been edited while a new repository version was added from another source) you need to talk to people, not to CVS.

/ department of mathematics and computer sciencedepartment of mathematics and computer science technische universiteit eindhoven TU/e advanced CVS commands creating a repository: cvs init, cvs import branching: cvs tag file # label current version of file in $CVSROOT cvs rtag # label current versions in $CVSROOT this can be used to create branches, forks of the code cvs merge args # join two branches together (equiv. of patch) cvs edit, cvs editors, cvs watch, etc.: for change notification

/ department of mathematics and computer sciencedepartment of mathematics and computer science technische universiteit eindhoven TU/e CVS: strong points entirely free: no cost, no licensing everybody and their dog uses it: high reliability, good support via Google simple: config files are plaintext, the protocol is simple, source code is free, so it’s very transparent extensible: it’s easy to wrap stuff around CVS at client side and server side (e.g. automatic checkout for petriweb.org: CVSROOT/loginfo calls this script) petriweb.orgCVSROOT/loginfoscript

/ department of mathematics and computer sciencedepartment of mathematics and computer science technische universiteit eindhoven TU/e CVS: weak points overly simple: it works on whole directory trees, but - adding/removing files and dirs is confusing - renaming files isn’t supported (except remove + add) - committing multiple files isn’t atomic - no support for hardlinks / symlinks / shortcuts - tagging/branching whole trees is hard to do the use of diffs: - performance on binary files is terrible - performance decreases with the number of commits

/ department of mathematics and computer sciencedepartment of mathematics and computer science technische universiteit eindhoven TU/e when to use CVS CVS is good when you have a collection of (mostly) text files you change them or plan to change them regularly (at least your copies of them) you and/or others access them from various locations you want to explicitly record and recall “good” versions of the files

/ department of mathematics and computer sciencedepartment of mathematics and computer science technische universiteit eindhoven TU/e CVS only offers version control! It does not offer: a website for your project a meeting place / q&a facility for users/authors problem report / task scheduling facilities etc. See again SourceForge for a survey of other facilities required to support a project.SourceForge

/ department of mathematics and computer sciencedepartment of mathematics and computer science technische universiteit eindhoven TU/e alternatives to CVS no version control: only if you’re sure you’ll only ever need the latest version SCCS (standard on Sun Solaris): not popular enough Subversion and others want to be CVS-like systems that fix its worst problems. I haven’t tried them.Subversion its worst problems Microsoft Visual SourceSafe. I haven’t tried it.Microsoft Visual SourceSafe more?

/ department of mathematics and computer sciencedepartment of mathematics and computer science technische universiteit eindhoven TU/e CVS vs. filesystem backups/copies a filesystem copy / backup to another disk or tape: saves everything indiscriminately may or may not save it in a useable state has limited memory for older versions a CVS repository: makes the user decide when to save what expects selective use (not too many files or saves) keeps perfect memory of everything ever saved

/ department of mathematics and computer sciencedepartment of mathematics and computer science technische universiteit eindhoven TU/e where to go next To learn how to use CVS: you don’t need to know much more than this good manuals are on the Web it takes a few hours to get used to

/ department of mathematics and computer sciencedepartment of mathematics and computer science technische universiteit eindhoven TU/e W&I Is there any need for a departmental CVS server for 1-user projects? (I don’t think so) for collaborations within the dept.? (?) for collaborations with others? (useful, but I don’t see how to set it up) as a public server for material? (?) ? Other kinds of CVS support? (Training?)