11/14/2006Christine Hennig1 Revision Control at W7-X CVS (Subversion) XDV: Christine Hennig.

Slides:



Advertisements
Similar presentations
1 IST 410/420 Software Version Control 2 DevelopmentIntegration Test System Test User Acceptance Testing ProductionArchive DEVELOPMENTUSERS - Developers.
Advertisements

1. What is Subversion? Why do we need CM? Basic concepts Repositories Options Setup Clients Options Setup Operation Troubleshooting Slide 2.
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.
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.
Summer of Code (SOC) Presentation Fred R McClurg Girish H Mhatre Version Control Overview.
Version Control System Sui Huang, McMaster University Version Control SystemSui Huang, McMaster University Version Control System -- base on Subversion.
2/6/2008Prof. Hilfinger CS164 Lecture 71 Version Control Lecture 7.
Using subversion COMP 2400 Prof. Chris GauthierDickey.
Concurrent Versioning System Chapter 8 (ALBING’s).
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?
CVS II: Parallelizing Software Development Author: Brian Berliner John Tully.
CS 501 : An Introduction to SCM & GForge An Introduction to SCM & GForge Lin Guo
The iiuf Java Package Part II Simon Schubiger and Oliver Hitz DIUF, University of Fribourg.
CVS Workshop I Arthur Chan. This workshop CVS overview (10%) Basic CVS commands (40%) Practical Issues in using CVS (50%) My experience in real-life For.
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.
European Organization for Nuclear Research Source Control Management Service (Subversion) Brice Copy, Michel Bornand EN-ICE 13 May 2009.
Source Code Revision Control Software CVS and Subversion (svn)
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 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.
Source Code Management with CVS Kurt Wiersma December 2004.
Article: Source Code Review Systems Author: Jason Remillard Presenter: Joe Borosky Class: Principles and Applications of Software Design Date: 11/2/2005.
Git – versioning and managing your software L. Grewe.
Subversion (SVN) Tutorial for CS421 Dan Fleck Spring 2010.
CVS 簡介 數位芝麻網路公司蔡志展 2001/8/18 大綱 • CVS 簡介 • CVS 安裝 • CVS 設定 (Linux/Windows) • CVS 指令簡介 • CVS 多人環境的應用.
Prepared by: Steve Teo Contributors: Tong Huu Khiem.
Subversion (SVN) Tutorial Source:
SWEN 302: AGILE METHODS Roma Klapaukh & Alex Potanin.
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.
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.
DireXions – Your Tool Box just got Bigger PxPlus Version Control System Using TortoiseSVN Presented by: Jane Raymond.
Computer Science and Engineering The Ohio State University  Widely used, especially in the opensource community, to track all changes to a project and.
CVS – concurrent versions system Network Management Workshop intERlab at AIT Thailand March 11-15, 2008.
CSE 219 Computer Science III CVS
1 Brief Introduction to Revision Control Ric Holt.
Prepared by: Steve Teo Contributors: Tong Huu Khiem.
CVS – concurrent versions system AROC Guatemala July 19-23, 2010 Guatemala City, Guatemala.
Code and Document Management Paul E. Reimer 21 June 2008.
1 CSE306 Operating Systems Projects CVS/SSH tutorial.
CVS: Concurrent Version System Lecturer: Prof. Andrzej (AJ) Bieszczad Phone: “UNIX for Programmers and Users” Third.
GIT.
Source Control Saves Lives. Lorna Mitchell Source Control Saves Lives BarCamp Leeds What is Source Control? Central filestore Change history Audit trail.
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)
Introduction to Git Yonglei Tao GVSU. Version Control Systems  Also known as Source Code Management systems  Increase your productivity by allowing.
WinCVS Training è Basic Concepts è Download & Setup è Importing a new module into CVS Repository è Getting new module from CVS è Getting Latest version.
Subversion (SVN) Tutorial for CS421 Dan Fleck Spring 2010.
© CGI Group Inc. User Guide Subversion client TortoiseSVN.
CS520 Web Programming Version Control with Subversion Chengyu Sun California State University, Los Angeles.
DIGITAL REPOSITORIES CGDD Job Description… Senior Tools Programmer – pulled August 4 th, 2011 from Gamasutra.
CS491A Software Design Lab Version Control with CVS and Subversion Chengyu Sun California State University, Los Angeles.
CVS – concurrent versions system
CVS – concurrent versions system
SVN intro (review).
User Guide PrimePortal – File Archive
Subversion.
Using Source Code Control Effectively
Software Version System Part1: Subversion at CERN
User Guide Subversion client TortoiseSVN
User Guide PrimePortal – File Archive
CVS Concurrent Versioning System
Concurrent Versions System
Presentation transcript:

11/14/2006Christine Hennig1 Revision Control at W7-X CVS (Subversion) XDV: Christine Hennig

11/14/2006Christine Hennig2 Motivation - Challenges development of applications at W7X –large –complex –long living maintainers of codes are human-beings; they –move –forget –make mistakes What were the methods we got these results from years ago?

3/3/2016Christine Hennig3 Requirements on code control safeguarding code revisions archiving code be able to have the full history support for cooperative work system should help the way people work together also useful for short and small size code development, even for a single developer

3/3/2016Christine Hennig4 Visions automatical extract documentation as website (e.g. viewcvs  students work) access to the work of others access to the work of temporary employees publication rules of MPG: „make everything reproducible“ over a „long period of time“ all diagnostics software code available in one common repository

3/3/2016Christine Hennig5 Concept of versioning systems common space for sources (local or some service) accessible for everyoneinvolved standardized structure sources can be locked (prevent other from changing it) changes have to be saved together with description, author, date and time, … versioning systems work together with the operating system (date and time, user, locking) versioning systems know nothing about the programming language, only ASCII text is interpreted

3/3/2016Christine Hennig6 Some systems free products SCCS Source Code Control System RCS Revision Control System CVS Concurrent Versioning System („successor“ of RCS) SVN Subversion („successor“ of CVS) commercial products exist

3/3/2016Christine Hennig7 CVS Client und Server w7xu-nfs your computer

3/3/2016Christine Hennig8 CVS repository and working directory w7xu-nfs your computer /usr2/cvsrep C:\Software\module1 CVSROOT module repository local working directory

3/3/2016Christine Hennig9 CVS versioning w7xu-nfs other computer /usr2/cvsrep C:\Software\module1 /afs/ipp/u/crh/module1 your computer entries revisions update commit

3/3/2016Christine Hennig10 CVS diffing

3/3/2016Christine Hennig11 CVS merging

3/3/2016Christine Hennig12 CVS branching

3/3/2016Christine Hennig13 CVS tagging

3/3/2016Christine Hennig14 Who at IPP uses revision control? (incomplete!) CVS (a lot of experience at IPP) diagnosticians (Werner, Turkin, Thomsen et. al.) XDV group (all development) W7X Control Group (all development) Stellarator Theory (common code pieces) subversion Werner SCCS AUG data aquisition group / data access routines („libdddw“)

3/3/2016Christine Hennig15 CVS Tips and Tricks use CVS with an integrated development environment tool clarify complex project structures before defining the CVS structure check-in often, more often or very often ask other people you are working together with add at least one line of comment when checking in use automatic CVS keyword substitution inside your code comments CVS does not substitute discussion

3/3/2016Christine Hennig16 GUI-Integration and CVS frontends Screenshots; Thanks to A.Werner, Th. Bluhm and Y. Turkin eclipse jbuilder kde kdevelop cervisia wincvs tortoisecvs

3/3/2016Christine Hennig17 eclipse (1)

3/3/2016Christine Hennig18 eclipse (2)

3/3/2016Christine Hennig19 cervisia

3/3/2016Christine Hennig20 Jbuilder

3/3/2016Christine Hennig21 kde

3/3/2016Christine Hennig22 kdevelop

3/3/2016Christine Hennig23 wincvs

3/3/2016Christine Hennig24 winmerge

3/3/2016Christine Hennig25 tortoise cvs Icons do not work with local working dir in AFS

3/3/2016Christine Hennig26 Major Drawbacks of CVS CVS is file-based, therefore renaming files restructuring projects project interdependencies …may become confusing No intuitive possibility for browsing of modules

3/3/2016Christine Hennig27 Status of CVS at IPP repository available at w7xu-nfs:/usr2/cvsrep to participate, contact G. Kühner retyping password any time you do any cvs action external contributors yet not supported in progress: automatic documentation via web-browser still open: external cooperation (using pserver; open IP address for external contributors?)

3/3/2016Christine Hennig28 Recommendations If you still not use any code control, you should… start immediately using cvs learn with a small project (eventually start with a local repository as sandbox) try to integrate cvs in your usual development environment (see screenshots) put ”everything” under version control –fortran, C, java, idl, matlab … –latex, XML, ps … –all ASCII worth saving (binary also possible)

3/3/2016Christine Hennig29 Conclusions (1) CVS is a powerful tool for software developers CVS is widely supported a lot of helpful tools, books and web- resources exist try it out, use it regularly additional hands-on session is possible All Wendelstein 7-X Software needs to be maintained in revision control system

3/3/2016Christine Hennig30 Conclusions (2) If you still not use any code control, you should…

3/3/2016Christine Hennig31 Addendum resources terms of versioning systems CVS commands CVS keyword substitution

3/3/2016Christine Hennig32 Resources for CVS CVS Homepage of the CVS project CVS manual for more tricky questions Eine kurze Einführung in CVS Ausarbeitung Versionskontrollsysteme am Beispiel CVS/RCS (descriptive pictures) dresden.de/svortrag/ai98/Langner /

3/3/2016Christine Hennig33 Resources for Subversion Subversion homepage online-Buch (descriptive pictures)

3/3/2016Christine Hennig34 Terms of versioning systems (1) repository common space for common data (local or server) local working directory where you work root the path to the repository revision numbers any change of the software release numbers a common status

3/3/2016Christine Hennig35 Terms of versioning systems (2) entries which files are under control commit put local changes into repository update get changes or all from repository merge putting concurrent changes together (automated/by hand) module a part of the system (customizable)

3/3/2016Christine Hennig36 Some CVS commands (1) specification of the cvs root (tcsh) setenv CVSROOT /afs/ipp/xdv/xdv_cvsroot or start every cvs command with cvs –d:local:/afs/ipp/xdv/xdv_cvsroot … command line short help cvs help / cvs –-help topic migration of a source project into local CVS create a local directory and set the CVSROOT to it cvs init cvs import sourcedir version release caution! adds ALL files, evtl. cleanup dir from all non-sources

3/3/2016Christine Hennig37 Some CVS commands (2) creation of a new repository from scratch create a directory and set the CVSROOT to it cvs init add source files (only places the file under control) cvs add source.suffix commit changes (changes are written) cvs commit source.suffix look up the status of file(s) cvs status source.suffix cvs status *

3/3/2016Christine Hennig38 Some CVS commands (3) updating local working directory (getting changes since last check-in) cvs update source.suffix cvs update * cvs get * looking up changes since selected date or revision cvs diff –D date1 –D date2 source.suffix cvs diff –r rev1 –r rev2 source.suffix defining a release cvs tag [options] symbolic_tag [files] deleting source files (still available for history) delete the file(s), then cvs remove

3/3/2016Christine Hennig39 CVS keyword substitution Selection of CVS keywords $Author$ The login name of the user who checked in the revision. $Date$ The date and time (UTC) the revision was checked in. $Header$ A standard header containing the full pathname of the RCS file, the revision number, the date (UTC), the author, the state, and the locker (if locked). Files will normally never be locked when you use CVS. (the latter strongly recommended for lazy people )

3/3/2016Christine Hennig40 How does it work? you put into code inside comment: /* $Header$ */ After the code was under cvs control you get: /* $Header: q:\\xdv_cvsroot/javaDAQ/xdv/MonitorClient. java,v /09/16 11:10:21 crh Exp $ */