Progress with migration to SVN Part3: How to work with g4svn and geant4tags tools. Geant4.

Slides:



Advertisements
Similar presentations
2/16/2004Sergei Sadilov PH/SFT 1 Bonsai in Integration Testing of Geant4 This presentation will probably involve audience discussion, which will create.
Advertisements

1. What is Subversion? Why do we need CM? Basic concepts Repositories Options Setup Clients Options Setup Operation Troubleshooting Slide 2.
Software Configuration Management Donna Albino LIS489, December 3, 2014.
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.
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.
Concurrent Versioning System Chapter 8 (ALBING’s).
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.
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.
Linux Operations and Administration
Subversion. What is Subversion? A Version Control System A successor to CVS and SourceSafe Essentially gives you a tracked, shared file system.
The Design Workshop Introduction to Version Control 1.
Version Control with Subversion Quick Reference of Subversion.
Nightly Releases and Testing Alexander Undrus Atlas SW week, May
1 Lecture 19 Configuration Management Software Engineering.
Git – versioning and managing your software L. Grewe.
Git A distributed version control system Powerpoint credited to University of PA And modified by Pepper 8-Oct-15.
Git workflow and basic commands By: Anuj Sharma. Why git? Git is a distributed revision control system with an emphasis on speed, data integrity, and.
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.
(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?
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.
Study for Migration from CVS to SubVersion (SVN) Gunter Folger CERN/PH/SFT.
CSE 219 Computer Science III CVS
1 / 22 AliRoot and AliEn Build Integration and Testing System.
ATLAS Detector Description Database Vakho Tsulaia University of Pittsburgh 3D workshop, CERN 14-Dec-2004.
ClearCase Concepts and Terminology
INFSO-RI Enabling Grids for E-sciencE SCDB C. Loomis / Michel Jouvin (LAL-Orsay) Quattor Tutorial LCG T2 Workshop June 16, 2006.
Version Control with SVN Images from TortoiseSVN documentation
EGEE-III INFSO-RI Enabling Grids for E-sciencE EGEE and gLite are registered trademarks Stephen Childs Trinity College Dublin &
CVS – concurrent versions system AROC Guatemala July 19-23, 2010 Guatemala City, Guatemala.
1 CSE306 Operating Systems Projects CVS/SSH tutorial.
Part 4: FCM and the UM University of Reading, December 2015.
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.
WinCVS Training è Basic Concepts è Download & Setup è Importing a new module into CVS Repository è Getting new module from CVS è Getting Latest version.
Geant4 is a toolkit to simulate the passage of particles through matter, and is widely used in HEP, in medical physics and for space applications. Ongoing.
Transition to SVN server: follow up P.Hristov 24/01/2008.
1 CSE 303 Lecture 19 Version control and Subversion ( svn ) slides created by Marty Stepp
TEAM FOUNDATION VERSION CONTROL AN OVERVIEW AND WALKTHROUGH By: Michael Mallar.
Subversion (SVN) Tutorial for CS421 Dan Fleck Spring 2010.
20 October 2005 LCG Generator Services monthly meeting, CERN Validation of GENSER & News on GENSER Alexander Toropin LCG Generator Services monthly meeting.
Source Control Repositories for Enabling Team Working Doncho Minkov Telerik Corporation
1 Ivan Marsic Rutgers University LECTURE 2: Software Configuration Management.
CS520 Web Programming Version Control with Subversion Chengyu Sun California State University, Los Angeles.
SCDB Update Michel Jouvin LAL, Orsay March 17, 2010 Quattor Workshop, Thessaloniki.
1 Subversion Kate Hedstrom April Version Control Software System for managing source files –For groups of people working on the same code –When.
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
Software Configuration Management -Subversion- RTLAB YuJin Park.
Configuration Management
How to Contribute to System Testing and Extract Results
Concurrent Versions System User guide for CS408
Subversion.
Microsoft Visual Source Safe How & Why
CVS Concurrent Versioning System
EXAMINE THE CHANGES.
Concurrent Versions System
Presentation transcript:

Progress with migration to SVN Part3: How to work with g4svn and geant4tags tools. Geant4

The Geant4 repository layout - remind 2

What do We need for switching to SVN? SVN repository adapted to Geant4 development cycle, ▫Convenient and manageable directory layout, ▫Sticky tags, ▫Validation. Tags collection, Web interface to manage the tags, Documentation, Adapt other procedures and scripts, ▫Testing, ▫Release building,  Creating the release tag,  Running tests. 3

4

The architecture – what developer should be aware of 5

pre-commit hook It is a program invoked by SVN on the server - just before the moment of committing changes, Usually it invokes other programs, that SVN admin can provide, These programs can be written in any programming language, Geant4 SVN repository pre-commit hook: ▫Implements sticky tags, ▫Checks if before tagging changes were committed to the trunk, ▫Stores tag information in the geant4tags web application database. 6

g4svn Created to help with complicated svn operations, Has the following subcommands: ▫checkout, ▫switch, ▫tag, ▫branch, ▫merge. It is a Python script, ▫It is platform independent and the only requirement is to have Python version >2.4 but not Python 3, g4svn [SUBCOMMAND] [OPTIONS] ARG 7

g4svn checkout (co) ARG can be: ▫list – prints out the list of available tags or branches of the top level Geant4 directory, ▫trunk, ▫tag name, ▫branch name. Options: ▫--dir-name – checkout destination directory – by default it is ‘geant4’, ▫--co-branch – flag informing g4svn to checkout a branch. g4svn checkout [OPTIONS] ARG 8

g4svn vs. svn - checkout (co) g4svn checkout geant ref-07 svn checkout \ svn+ssh://svn.cern.ch/reps/g4test/tags/geant4/_symbols /geant ref-07 geant4 svn checkout \ eant ref-07 geant4 Windows: Linux/Mac: 9

g4svn checkout - examples List available options: Checkout tag geant to the geant4 directory: Checkout branch XXX to the BRANCH-XXX directory: Checkout the trunk to the geant4 directory : g4svn checkout geant g4svn checkout list g4svn checkout –-co-branch –-dir-name=BRANCH-XXX XXX g4svn checkout trunk 10

Tagging in SVN - remind Tagging is copying in SVN, In Geant4 - copying to corresponding subdirectory of the tags directory, For example tag on run (supposing that we are in geant4/source/run): 11 svn copy. REPO_URL/tags/geant4/source/run/_symbols/run-V m „Creating tag run-V ” svn copy. REPO_URL/tags/geant4/source/run/_symbols/run-V m „Creating tag run-V ”

g4svn tag ARG is the name of a tag, Options: ▫-p (--proposed) – indicates immediate proposing a tag on the geant4tags web application, ▫-d (--description) – required if a tag proposed – the description for the proposed tag, ▫-b (--bugfix) – flag indicating g4svn that this tag includes bugfix, ▫--bugfix-number – flag indicating g4svn that tag resolve problem with a provided number. g4svn tag [OPTIONS] ARG 12

g4svn vs. svn - tag g4svn tag event-VXX-YY-ZZ svn copy. \ svn+ssh://svn.cern.ch/reps/g4test/tags/geant4/source/event /_symbols/event-VXX-YY-ZZ –m „This tag was manufactured by g4svn to create tag event-VXX-YY-ZZ” Examples for the event category (geant4/source/event) g4svn tag –p –d „Tagging event” event-VXX-YY-ZZ svn propset proposed yes. svn propset bugfix no. svn copy. \ svn+ssh://svn.cern.ch/reps/g4test/tags/geant4/source/event /_symbols/event-VXX-YY-ZZ –m „Tagging event” svn propset proposed yes. svn propset bugfix no. svn copy. \ svn+ssh://svn.cern.ch/reps/g4test/tags/geant4/source/event /_symbols/event-VXX-YY-ZZ –m „Tagging event” 13

g4svn tag - examples Simple tag: Tag proposed without a bugfix: Tag proposed with a bugfix: Tag proposed fixing a bug number: g4svn tag tag-name-VXX-YY-ZZ g4svn tag –p –d „Tag without bugfix” tag-name-VXX-YY-ZZ g4svn tag –p –b –d „Tag with bugfix” tag-name-VXX-YY-ZZ g4svn tag –p –-bugfix-number=666 –d „Tag fixing problem 666” tag-name-VXX-YY-ZZ 14

Selective tagging g4svn copies the current working directory contents to the tag, If You want to tag only a part of the directory, You have to svn remove what You want to exclude: The last command reverts the working directory to the point after svn update. svn commit –m „Before tagging commit” svn update svn remove file1 svn remove dir1 g4svn tag tag-name svn revert. -R svn commit –m „Before tagging commit” svn update svn remove file1 svn remove dir1 g4svn tag tag-name svn revert. -R 15

svn switch - remind Every file/directory in Your working copy ‘points’ to some file/directory in the repository, svn switch command allows You to point to different file/directory that shares a common ancestor, although not necessarily. 16

g4svn switch ARG can be: ▫list – prints out the list of available tags or branches for the working directory, ▫trunk, ▫tag name, ▫branch name. Options: ▫--tag – Default, switches to the tag with the given name, ▫--branch – switches to the branch with the given name. g4svn switch [OPTIONS] ARG 17

g4svn vs. svn - switch (sw) g4svn switch event-VXX-YY-ZZ svn switch svn+ssh://svn.cern.ch/reps/g4test/tags/geant4/source/event /_symbols/event-VXX-YY-ZZ. Examples for the event category (geant4/source/event) g4svn switch trunk svn switch svn+ssh://svn.cern.ch/reps/g4test/trunk/geant4/source/event 18

g4svn switch - examples List available switch options for the category: Switch the category to the trunk: Switch the category to a specific tag: Switch the category to a specific branch: g4svn switch list g4svn switch tag-name g4svn switch –-branch branch-name g4svn switch trunk 19

geant4tags It is a web application replacing bonsai, Implemented using modern technologies, Two versions: ▫Developer – easy to understand interface, ▫Admin – full functionality. This way, developers use only functions that they really need – not confusing interface, The admin version gives some more functionality than the current system. 20

geant4tags – developer version It offers easy to understand interface for the Geant4 developer providing the following functionality: ▫querying tags database, ▫ proposing a tag with additional information:  Description,  Bugfix - with an optional number. ▫Rejecting the proposed tag providing:  Sentence. Has some convenient features: ▫Multiselecting tags, ▫Sorting the table. Accessible only to the authorized users, Available at: 21

Working on a category (1/3) 1. Checkout the reference tag: 2. Switch category to the trunk: 3. Make some changes ▫ File changes, ▫ Tree changes (svn add, remove, copy, rename, move) 4. Check changes (-u option : check against HEAD): 5. [GO TO POINT 3 OR 6] g4svn checkout geant cd geant4/source/event g4svn checkout geant cd geant4/source/event g4svn switch trunk svn status -u 22

Working on a category (2/3) 6.Update – take other developers’ changes to Your working copy: 7.Commit 8.[GO TO POINT 3 OR 9] 9.Update whole category to the same revision: svn update svn commit –m „Commiting changes” svn update 23

Working on a category (3/3) 10.Exclude some files or directories (i.e. test): 11.Tag: 12.Revert (recursive) the state of the category to the after-point 6 (svn update) 13.[GO TO POINT 3] svn rm test svn rm some_other_file svn rm test svn rm some_other_file g4svn tag event-VXX-YY-ZZ svn revert. -R 24

25

The architecture 26

Testing procedure Developers create tags - information about them is stored in the database, Some of them are being selected and added to the pool of tags that will be tested on the top of the last global tag, Every night, system called Nightly Build System builds a Geant4 version with selected tags, ▫List of the tags is generated by Bonsai. This version is being tested and information about failures and errors is being preserved, After analyzing this information, some tags are accepted and some are rejected. 27

geant4tagsadmin More advanced version of the geant4tags – more functions, Its main goal is to support Geant4 development: ▫Manage tags, ▫Select tags for testing, ▫Manage concurrent ‘development lines’, ▫Keep the history of the development. ▫Inform developers (by ) about certain actions:  Tag accepted,  Tag rejected,  Maybe other? Accessible only to the authorized users, Available at:

The main concepts - Tag Represents a tag created by a developer, Main attributes: ▫Name ▫Tagged path, ▫Creation date, ▫Description ▫Status:  Internal,  Proposed,  Selected,  Postponed,  Accepted,  Rejected,  GLOBAL 29

Tag statuses 30

The main concepts - Taglist Taglist it is a labeled collection of some tags, Its purpose is to hold some common information about a set of tags, Main attributes: ▫Number, ▫(Optional) Name, ▫Creation date, ▫Linkage to the Development line 31

The main concepts – Development line Represents some development time interval – from one global tag to another, Consists of a global tag and taglists, Concurrent development lines, Main attributes: ▫Name, ▫Linkage to global tag, ▫Slot, ▫Status (Open, Closed), ▫Open date, ▫Close date, ▫Linkage to the previous development line, ▫Description. 32

Development line - testing Each development line has attribute slot, Its purpose is to identify the ‘family’ of the development lines, This attribute is used to select development lines by the Nightly Build System, Concurrent development lines must have different slots – there can be only one open development line on some slot, The main goal was to enable parallel testing of the different configuration of the Geant4 project ▫Main line, ▫Patches, ▫Other. 33

Development lines – testing 34

geant4tags admin – tag functionality Querying tags, Filtering received data, Multiple operations on tags: ▫Changing the status of tags, ▫Assign tags to the taglists, ▫Unassign tags from the taglists. Assigning the global tag to the development line. 35

geant4tagsadmin – taglist, development lines functionality Taglists: ▫Creating taglists, ▫Inheriting taglists by development lines, ▫Assigning taglists to development lines, Development lines: ▫Creating, ▫Updating (including closing), ▫Analyzing assigned taglists with tags. 36

Conclusion SVN is a little bit different from CVS, Some commands remain the same, some are different, g4svn will allow Geant4 developers to ‘smoothly’ change working model from CVS to SVN, Tagging and proposing are simpler now – single command, geant4tags - has two versions: ▫Developer – easy to understand interface, ▫Admin – gives full control over the development cycle. 37

38

39