"Code management in multi programmer environments."
|
|
|
- Thomas Carr
- 10 years ago
- Views:
Transcription
1 Another installment in the 'Computing in high energy physics' series ( ). "Code management in multi programmer environments." Author: D. Hatton (DESY/Hamburg) Table of Contents: 1. Overview 2. Version control. What is it and why? 3. CVS (Concurrent Versions System.) 4. Seperate development paths. Branching and merging Some communication issues... About source conflicts. Automatic notifications. 6. cvsweb... A tour of the CVS web interface.
2 1. Overview. Software project version control. Without some reliable mechanism, the job of maintaining and tracking the source versions underlying a release becomes unnecessarily error prone and convoluted, even on a small one person project. Version tracking on a project involving several developers becomes practically impossible. What version control tools are out there? Microsoft Visual Source Safe and PVCS both of which, both of which are commercial. For this discussion, version management issues will be looked at in terms of CVS (Concurrent Versions System). It's certainly 'good enough' for most purposes and almost ubiquitous. As well as being free. Issues of multi programmer source management using CVS. Some additional tools for source navigation, bug tracking and automatic build maintainance.
3 2. Version control. What is it and why? What is it? Version control, essentially this is about having some means of being able to reproduce a set of source files that satisfied some set of conditions in the past. e.g. Conditions such as, an executable could be built from them which passed certain test conditions... or perhaps they exhibit some problem feature and they can be used to reproduce it. Of course we could apply this to other contexts such as document control, the principal is the same. Why use a tool for version control? Why use it? This is should be clear, but very often source versions are maintained in a manual way often in an ad hoc manner e.g. Someone develops some library, each week starting a new directory in order to 'backup' the last changes from the previous week... lrwxrwxrwx 1 fred users 9 Feb 16 13:12 current > lib week3 drwxr xr x 2 fred users 4096 Feb 16 13:11 lib week1 drwxr xr x 2 fred users 4096 Feb 16 13:12 lib week2 drwxr xr x 2 fred users 4096 Feb 16 13:12 lib week3 For large project, this can waste a lot of disk space for one thing, this is really is nothing more than a manual backup mechanism. User fred will have to create a directory for each build that he is satified with. There will be unecessary trouble in tracking changes in case of a problem later. If indeed, it is possible to track the changes at all... the backups are mostly arbitrarily based on some date. If several developers are invloved and there are several modules, it would be hard if not
4 impossible to avoid frequent errors... Another approach is often to keep executable versions, these tend to become dissociated from the source code meaning that if there's a problem, very often the source code simply cannot be determined. So clearly even at the most basic level, some automated version control tool will save a great deal of unecessary effort and trouble.
5 3. CVS (Concurrent Versions System.) What is CVS? CVS is an open source version control tool with several features that we'll be exploring. It stores project files as a set of sub directories beneath the repository root. Basic features: Maintains a central repository holding file revision changes. Allowing symbolic tags to be associated with any collection of file revisions. Parallel development using branches. Applying cvs... We'll introduce it's basic deployment by running through the steps necessary, to get the previous 'weekly backup' example under cvs... Creating the repository. CVS relies on a central directory where it stores it's administrative files as well as the target revision file information, this is known as the repository. The user fred would create say, /home/fred/project/cvs, setting the environment variable CVSROOT=/home/fred/project/CVS, this then tells CVS where the repository is for all subsequent operations. Next, the command 'cvs init' sets up the repository control files and it is ready for use. Importing files. In the directory containing the files, running : cvs import PROJECT vendor tag initial_release_tag; This stores the initial revisions in the repository. The files can then be checked out using cvs checkout PROJECT, cvs creates a working directory PROJECT/ containing the source files. These source files can be worked on without affecting the anybody else or the central repository. A set of changes can be 'commit'ed to the repository as follows : cvs commit files... Tracking versions using tags. In cvs there is the facility to give symbolic names to sets of files with possibly several different revision numbers. It's called tagging... It's used to tie together a set of file revisions that constitute some meaningful release or condition... In order to issue such a tag 'cvs tag SYMBOLIC_TAG module' is used. Where SYMBOLIC_TAG is an arbitrary name, and module is the target repository directory.
6 4. Seperate development paths. Branching An important feature that CVS has is the ability to allow parallel development paths on the same module directory. Very often a user will want to do some develpmental work on a module that will introduce significant changes, while needing to maintain some earlier stable release. The user creates a 'branch' at the point in question... cvs tag b BRANCH_TAG SYMBOLIC_TAG module_name. The user can then maintain the changes on the branch by 'cvs checkout rbranch_tag'. At a later stage a branch may be merged back on to the main trunk by 'cvs update jbranch_tag' from the working directory containing the latest revisions of the main trunk. However a branch may be maintained without merging permanently if required.
7 5. Some communication issues. Conflicts Source conflicts occur when two or more users attempt to change the same line of code. Conflicts can also occur as the result of a single users work. How does CVS handle this? An example... Automatic notifications Support for receiving notifications based on cvs operations such as tagging...
8 6. CVSWEB. Introduction to the cvsweb interface... cvsweb
9 table of contents 7. Summary and concluding remarks. Closing remarks. Bug tracking, source navigation.
Beginning with SubclipseSVN
Version 2 July 2007 Beginning with SubclipseSVN A user guide to begin using the Subclipse for source code management on the CropForge collaborative software development site. Copyright International Rice
Version Control with Subversion and Xcode
Version Control with Subversion and Xcode Author: Mark Szymczyk Last Update: June 21, 2006 This article shows you how to place your source code files under version control using Subversion and Xcode. By
CISC 275: Introduction to Software Engineering. Lab 5: Introduction to Revision Control with. Charlie Greenbacker University of Delaware Fall 2011
CISC 275: Introduction to Software Engineering Lab 5: Introduction to Revision Control with Charlie Greenbacker University of Delaware Fall 2011 Overview Revision Control Systems in general Subversion
Using Subversion in Computer Science
School of Computer Science 1 Using Subversion in Computer Science Last modified July 28, 2006 Starting from semester two, the School is adopting the increasingly popular SVN system for management of student
Revision control systems (RCS) and
Revision control systems (RCS) and Subversion Problem area Software projects with multiple developers need to coordinate and synchronize the source code Approaches to version control Work on same computer
Promotion Model. CVS SUITE QUICK GUIDE 2009 Build 3701 February 2010. March Hare Software Ltd
CVS SUITE QUICK GUIDE 2009 Build 3701 February 2010 March Hare Software Ltd Legal Notices Legal Notices There are various product or company names used herein that are the trademarks, service marks, or
Software Configuration Management (SCM)
Software Configuration Management (SCM) SCM actually consists of several separate yet cumulative disciplines. Version Management is an entry point for SCM T M Abstract : Software Configuration Management
Software configuration management
Software Engineering Theory Software configuration management Lena Buffoni/ Kristian Sandahl Department of Computer and Information Science 2015-09-30 2 Maintenance Requirements System Design (Architecture,
Version Control Systems
Version Control Systems ESA 2015/2016 Adam Belloum [email protected] Material Prepared by Eelco Schatborn Today IntroducGon to Version Control Systems Centralized Version Control Systems RCS CVS SVN
Source Code Management/Version Control
Date: 3 rd March 2005 Source Code Management/Version Control The Problem: In a typical software development environment, many developers will be engaged in work on one code base. If everyone was to be
Version Uncontrolled! : How to Manage Your Version Control
Version Uncontrolled! : How to Manage Your Version Control Harold Dost III, Raastech ABSTRACT Are you constantly wondering what is in your production environment? Do you have any doubts about what code
Content. Development Tools 2(63)
Development Tools Content Project management and build, Maven Version control, Git Code coverage, JaCoCo Profiling, NetBeans Static Analyzer, NetBeans Continuous integration, Hudson Development Tools 2(63)
Source Control Systems
Source Control Systems SVN, Git, GitHub SoftUni Team Technical Trainers Software University http://softuni.bg Table of Contents 1. Software Configuration Management (SCM) 2. Version Control Systems: Philosophy
Continuous Integration. CSC 440: Software Engineering Slide #1
Continuous Integration CSC 440: Software Engineering Slide #1 Topics 1. Continuous integration 2. Configuration management 3. Types of version control 1. None 2. Lock-Modify-Unlock 3. Copy-Modify-Merge
CPSC 491. Today: Source code control. Source Code (Version) Control. Exercise: g., no git, subversion, cvs, etc.)
Today: Source code control CPSC 491 Source Code (Version) Control Exercise: 1. Pretend like you don t have a version control system (e. g., no git, subversion, cvs, etc.) 2. How would you manage your source
Introduction to Git. Markus Kötter [email protected]. Notes. Leinelab Workshop July 28, 2015
Introduction to Git Markus Kötter [email protected] Leinelab Workshop July 28, 2015 Motivation - Why use version control? Versions in file names: does this look familiar? $ ls file file.2 file.
DAVE Usage with SVN. Presentation and Tutorial v 2.0. May, 2014
DAVE Usage with SVN Presentation and Tutorial v 2.0 May, 2014 Required DAVE Version Required DAVE version: v 3.1.6 or higher (recommend to use the most latest version, as of Feb 28, 2014, v 3.1.10) Required
CSCB07 Software Design Version Control
CSCB07 Software Design Version Control Anya Tafliovich Fall 2015 Problem I: Working Solo How do you keep track of changes to your program? Option 1: Don t bother Hope you get it right the first time Hope
How To Manage A Computer System
Ivica Crnkovic Mälardalen University Department of Computer Engineering [email protected] Page 1, 3/5/2001 Software Configuration Management SCM - takes care about development components and products
Ingeniørh. Version Control also known as Configuration Management
Ingeniørh rhøjskolen i Århus Version Control also known as Configuration Management Why version control? Teamwork You work in a team. You open a file and start work on it. Your colleague opens a file and
Software Configuration Management. Context. Learning Objectives
Software Configuration Management Wolfgang Emmerich Professor of Distributed Computing University College London http://sse.cs.ucl.ac.uk Context Requirements Inception Elaboration Construction Transition
IKAN ALM Architecture. Closing the Gap Enterprise-wide Application Lifecycle Management
IKAN ALM Architecture Closing the Gap Enterprise-wide Application Lifecycle Management Table of contents IKAN ALM SERVER Architecture...4 IKAN ALM AGENT Architecture...6 Interaction between the IKAN ALM
Pragmatic Version Control
Extracted from: Pragmatic Version Control using Subversion, 2nd Edition This PDF file contains pages extracted from Pragmatic Version Control, one of the Pragmatic Starter Kit series of books for project
Subversion Integration for Visual Studio
Subversion Integration for Visual Studio VisualSVN Team VisualSVN: Subversion Integration for Visual Studio VisualSVN Team Copyright 2005-2008 VisualSVN Team Windows is a registered trademark of Microsoft
Version Control Systems: SVN and GIT. How do VCS support SW development teams?
Version Control Systems: SVN and GIT How do VCS support SW development teams? CS 435/535 The College of William and Mary Agile manifesto We are uncovering better ways of developing software by doing it
The OpenFOAM-extend project on SourceForge: current status. Bernhard Gschaider, ICE Strömungforschung GmbH
The OpenFOAM-extend project on SourceForge: current status Martin Beaudoin, Hydro Québec Research Institute Bernhard Gschaider, ICE Strömungforschung GmbH Outline of the presentation Overview of the OpenFOAM-extend
JavaScript Applications for the Enterprise: From Empty Folders to Managed Deployments. George Bochenek Randy Jones
JavaScript Applications for the Enterprise: From Empty Folders to Managed Deployments George Bochenek Randy Jones Enterprise Development What is it? Source Control Project Organization Unit Testing Continuous
Continuous Integration
Continuous Integration Collaborative development issues Checkout of a shared version of software ( mainline ) Creation of personal working copies of developers Software development: modification of personal
The Essentials of File Management with LabVIEW
The Essentials of File Management with LabVIEW Courtney Lessard LabVIEW Product Manager Presented by Alexandra Valiton, NI Field Engineer, Long Island How many files in your biggest application?.lvproj.vi.ctl.lvlib.dll
Working with a Version Control System
Working with a Version Control System Summary Tutorial TU0114 (v2.4) March 18, 2008 This tutorial looks at how you can use Altium Designer s built-in version control capabilities to check project files
Version control. HEAD is the name of the latest revision in the repository. It can be used in subversion rather than the latest revision number.
Version control Version control is a powerful tool for many kinds of work done over a period of time, including writing papers and theses as well as writing code. This session gives a introduction to a
Version Control. Luka Milovanov [email protected]
Version Control Luka Milovanov [email protected] Configuration Management Configuration management is the management of system change to software products Version management: consistent scheme of version
Application Lifecycle Management White Paper. Source Code Management Best Practice: Applying Economic Logic to Migration ALM
ALM Application Lifecycle Management White Paper Source Code Management Best Practice: Applying Economic Logic to Migration Summary: Is there a Business Case for Migration? Ultimately, what is the value
Continuous Integration and Delivery at NSIDC
National Snow and Ice Data Center Supporting Cryospheric Research Since 1976 Continuous Integration and Delivery at NSIDC Julia Collins National Snow and Ice Data Center Cooperative Institute for Research
Taking the Complexity Out of Release Management
Taking the Complexity Out of Release Management &RS\ULJKW,QIRUPDWLRQ Taking the Complexity Out of Release Management CM+ is a trademark of Neuma Technology Inc. Neuma Technology provides this document
CSE 374 Programming Concepts & Tools. Laura Campbell (Thanks to Hal Perkins) Winter 2014 Lecture 16 Version control and svn
CSE 374 Programming Concepts & Tools Laura Campbell (Thanks to Hal Perkins) Winter 2014 Lecture 16 Version control and svn Where we are Learning tools and concepts relevant to multi-file, multi-person,
Jazz Source Control Best Practices
Jazz Source Control Best Practices Shashikant Padur RTC SCM Developer Jazz Source Control Mantra The fine print Fast, easy, and a few concepts to support many flexible workflows Give all users access to
Developing Software in a Private workspace - 4.01 PM PMS
SBCH06.fm Page 67 Friday, October 4, 2002 4:01 PM 6 Private Workspace A government clerk s room, showing a desk with books, telephone and directory, and a desk lamp on it. Washington, D.C., 1939. Photo
Software Delivery Integration and Source Code Management. for Suppliers
Software Delivery Integration and Source Code Management for Suppliers Document Information Author Version 1.0 Version Date 8/6/2012 Status final Approved by Reference not applicable Subversion_for_suppliers.doc
Page 1. Outline of the Lecture. What is Software Configuration Management? Why Software Configuration Management?
Books: Software Configuration Management 1. B. Bruegge and A. H. Dutoit, Object-Oriented Software Engineering: Using UML, Patterns, and Java (Chapter 13) Outline of the Lecture Purpose of Software Configuration
Source Control Guide: Git
MadCap Software Source Control Guide: Git Flare 11.1 Copyright 2015 MadCap Software. All rights reserved. Information in this document is subject to change without notice. The software described in this
SOFTWARE DEVELOPMENT BASICS SED
SOFTWARE DEVELOPMENT BASICS SED Centre de recherche Lille Nord Europe 16 DÉCEMBRE 2011 SUMMARY 1. Inria Forge 2. Build Process of Software 3. Software Testing 4. Continuous Integration 16 DECEMBRE 2011-2
Manual. CollabNet Subversion Connector to HP Quality Center. Version 1.2
Manual CollabNet Subversion Connector to HP Quality Center Version 1.2 A BOUT THE CONNECTOR About the Connector The CollabNet Subversion Connector to HP Quality Center enables Quality Center users to
Setting up a local working copy with SVN, MAMP and rsync. Agentic - 2009
Setting up a local working copy with SVN, MAMP and rsync Agentic - 2009 Get MAMP You can download MAMP for MAC at this address : http://www.mamp.info/en/downloads/index.html Install MAMP in your APPLICATION
BlueJ Teamwork Tutorial
BlueJ Teamwork Tutorial Version 2.0 for BlueJ Version 2.5.0 (and 2.2.x) Bruce Quig, Davin McCall School of Engineering & IT, Deakin University Contents 1 OVERVIEW... 3 2 SETTING UP A REPOSITORY... 3 3
MATLAB & Git Versioning: The Very Basics
1 MATLAB & Git Versioning: The Very Basics basic guide for using git (command line) in the development of MATLAB code (windows) The information for this small guide was taken from the following websites:
Software Configuration Management and Continuous Integration
1 Chapter 1 Software Configuration Management and Continuous Integration Matthias Molitor, 1856389 Reaching and maintaining a high quality level is essential for each today s software project. To accomplish
Introducing Xcode Source Control
APPENDIX A Introducing Xcode Source Control What You ll Learn in This Appendix: u The source control features offered in Xcode u The language of source control systems u How to connect to remote Subversion
Lab Exercise Part II: Git: A distributed version control system
Lunds tekniska högskola Datavetenskap, Nov 25, 2013 EDA260 Programvaruutveckling i grupp projekt Labb 2 (part II: Git): Labbhandledning Checked on Git versions: 1.8.1.2 Lab Exercise Part II: Git: A distributed
Implementing Continuous Integration Testing Prepared by:
Implementing Continuous Integration Testing Prepared by: Mr Sandeep M Table of Contents 1. ABSTRACT... 2 2. INTRODUCTION TO CONTINUOUS INTEGRATION (CI)... 3 3. CI FOR AGILE METHODOLOGY... 4 4. WORK FLOW...
RANCID and CVS. PacNOG 6 Nadi, Fiji
RANCID and CVS PacNOG 6 Nadi, Fiji Overview what is CVS? Version Control Systems: CVS Mercurial RCS Subversion RANCID works with CVS to as a version control system for network hardware configurations.
Introduction to Programming Tools. Anjana & Shankar September,2010
Introduction to Programming Tools Anjana & Shankar September,2010 Contents Essentials tooling concepts in S/W development Build system Version Control System Testing Tools Continuous Integration Issue
CSE 70: Software Development Pipeline Version Control with Subversion, Continuous Integration with Bamboo, Issue Tracking with Jira
CSE 70: Software Development Pipeline Version Control with Subversion, Continuous Integration with Bamboo, Issue Tracking with Jira Ingolf Krueger Department of Computer Science & Engineering University
MATLAB @ Work. MATLAB Source Control Using Git
MATLAB @ Work MATLAB Source Control Using Git Richard Johnson Using source control is a key practice for professional programmers. If you have ever broken a program with a lot of editing changes, you can
Version Control. Version Control
Version Control CS440 Introduction to Software Engineering 2013, 2015 John Bell Based on slides prepared by Jason Leigh for CS 340 University of Illinois at Chicago Version Control Incredibly important
NEESit Software Configuration Management Process
NEESit Software Configuration Management Process 1 1 NEES Cyberinfrastructure Center, SDSC Last Modified: 2005-02-09 Version: 1.1 Acknowledgment: This work was supported by the George E. Brown, Jr. Network
Software Engineering I (02161)
Software Engineering I (02161) Week 8 Assoc. Prof. Hubert Baumeister DTU Compute Technical University of Denmark Spring 2015 Last Week State machines Layered Architecture: GUI Layered Architecture: Persistency
Version Control with Git. Linux Users Group UT Arlington. Rohit Rawat [email protected]
Version Control with Git Linux Users Group UT Arlington Rohit Rawat [email protected] Need for Version Control Better than manually storing backups of older versions Easier to keep everyone updated
Using RSMACC version control system with AB Industrial programming Controllers and files.
Using RSMACC version control system with AB Industrial programming Controllers and files. RSMACC (Rockwell Software Maintenance Automation Control Center) 2003. Credits: Peter Tiagunov LeanMES, Free Academic
Distributed Version Control with Mercurial and git
OpenStax-CNX module: m37404 1 Distributed Version Control with Mercurial and git Hannes Hirzel This work is produced by OpenStax-CNX and licensed under the Creative Commons Attribution License 3.0 Abstract
Ensure Merge Accuracy in Continuous Integration Development Environments
Ensure Merge Accuracy in Continuous Integration Development Environments 2 Defect Challenges in Continuous Integration Development Modern software development is rapidly moving to incremental development
SVN Setup and Configuration Management
Configuration Management Each team should use the Subversion (SVN) repository located at https://svn-user.cse.msu.edu/user/cse435/f2014/ to provide version control for all project artifacts as
Version Control with Git
Version Control with Git Ben Wasserman ([email protected]) 15-441 Computer Networks Recitation 3 1/28 What is version control? Revisit previous code versions Backup projects Work with others Find where
Annoyances with our current source control Can it get more comfortable? Git Appendix. Git vs Subversion. Andrey Kotlarski 13.XII.
Git vs Subversion Andrey Kotlarski 13.XII.2011 Outline Annoyances with our current source control Can it get more comfortable? Git Appendix Rant Network traffic Hopefully we have good repository backup
Surround SCM Best Practices
Surround SCM Best Practices This document addresses some of the common activities in Surround SCM and offers best practices for each. These best practices are designed with Surround SCM users in mind,
Putting It All Together. Vagrant Drush Version Control
Putting It All Together Vagrant Drush Version Control Vagrant Most Drupal developers now work on OSX. The Vagarant provisioning scripts may not work on Windows without subtle changes. If supplied, read
Advanced Computing Tools for Applied Research Chapter 4. Version control
Advanced Computing Tools for Applied Research Jaime Boal Martín-Larrauri Rafael Palacios Hielscher Academic year 2014/2015 1 Version control fundamentals 2 What you probably do now Manually save copies
Introduction to Software Configuration Management. CprE 556 Electrical and Computer Engineering Department Iowa State University
Introduction to Software Configuration Management CprE 556 Electrical and Computer Engineering Department Iowa State University 1 Example Initially, implementation is in Modula-2 on a Mac. A11 B11 A12
Version Control Tutorial using TortoiseSVN and. TortoiseGit
Version Control Tutorial using TortoiseSVN and TortoiseGit Christopher J. Roy, Associate Professor Virginia Tech, [email protected] This tutorial can be found at: www.aoe.vt.edu/people/webpages/cjroy/software-resources/tortoise-svn-git-tutorial.pdf
Word 2010: Mail Merge to Email with Attachments
Word 2010: Mail Merge to Email with Attachments Table of Contents TO SEE THE SECTION FOR MACROS, YOU MUST TURN ON THE DEVELOPER TAB:... 2 SET REFERENCE IN VISUAL BASIC:... 2 CREATE THE MACRO TO USE WITHIN
The Real Challenges of Configuration Management
The Real Challenges of Configuration Management McCabe & Associates Table of Contents The Real Challenges of CM 3 Introduction 3 Parallel Development 3 Maintaining Multiple Releases 3 Rapid Development
CS108, Stanford Handout #33. CVS in Eclipse
CS108, Stanford Handout #33 Winter, 2006-07 Nick Parlante CVS in Eclipse Source Control Any modern software project of any size uses "source control" Store all past revisions - Can see old versions, see
Large Projects & Software Engineering
Large Projects & Software Engineering With thanks to Bob Jones for ideas and illustrations 1 Why spend so much time talking about Software Process? How do you create software? Lots of parts: Writing, documenting,
Impact of Source Code Availability on the Economics of Using Third Party Components A White Paper
Impact of Source Code Availability on the Economics of Using Third Party Components A White Paper Copyright 2004 by Desaware Inc. All Rights Reserved Desaware Inc.1100 E. Hamilton Ave #4, Campbell, CA
Version Control for Computational Economists: An Introduction
Version Control for Computational Economists: An Introduction Jake C. Torcasso April 3, 2014 Starting Point A collection of files on your computer Changes to files and new files over time Interested in
MDSplus Automated Build and Distribution System
PSFC/JA-13-23 MDSplus Automated Build and Distribution System Fredian T.W., Stillerman J.A.*, Manduchi G.** * Plasma Science and Fusion Center, MIT ** Consorzio RFX, Euratom-ENEA Association, Padova,Italy
ATLAS.ti 7 Project Backup
ATLAS.ti 7 Project Backup Copyright 2015 by ATLAS.ti Scientific Software Development GmbH, Berlin. All rights reserved. Document Version: 89.20150322. Updated for program version: 7.5 Author: Dr. Susanne
using version control in system administration
LUKE KANIES using version control in system administration Luke Kanies runs Reductive Labs (http://reductivelabs.com), a startup producing OSS software for centralized, automated server administration.
An introduction to the benefits of Application Lifecycle Management
An introduction to the benefits of Application Lifecycle Management IKAN ALM increases team productivity, improves application quality, lowers the costs and speeds up the time-to-market of the entire application
Zoom Plug-ins for Adobe
= Zoom Plug-ins for Adobe User Guide Copyright 2010 Evolphin Software. All rights reserved. Table of Contents Table of Contents Chapter 1 Preface... 4 1.1 Document Revision... 4 1.2 Audience... 4 1.3 Pre-requisite...
