SVN Setup and Configuration Management



Similar documents
Ingeniørh. Version Control also known as Configuration Management

Version Control with Subversion

Introduction to Subversion

Revision control systems (RCS) and

Source Control Systems

Version Control Using Subversion. 12 May 2013 OSU CSE 1

Continuous Integration. CSC 440: Software Engineering Slide #1

SVN Starter s Guide Compiled by Pearl Guterman June 2005

Subversion Integration for Visual Studio

Version Control with Subversion

Revision Control. Solutions to Protect Your Documents and Track Workflow WHITE PAPER

Week G Versioning with svn

Working with a Version Control System

Beginning with SubclipseSVN

TortoiseSVN A Subversion client for Windows Version Stefan Küng Lübbe Onken Simon Large

Version Control with Subversion

[PRAKTISCHE ASPEKTE DER INFORMATIK WS 13/14]

Pragmatic Version Control

Installing the JDeveloper Subversion VCS extension

DAVE Usage with SVN. Presentation and Tutorial v 2.0. May, 2014

Version Control. Luka Milovanov

Using Subversion in Computer Science

CPSC 491. Today: Source code control. Source Code (Version) Control. Exercise: g., no git, subversion, cvs, etc.)

Version Control Using Subversion. Version Control Using Subversion 1 / 27

TortoiseSVN A Subversion client for Windows Version Stefan Küng Lübbe Onken Simon Large

Tuesday, October 18. Configuration Management (Version Control)

BlueJ Teamwork Tutorial

Slides prepared by : Farzana Rahman. SUBVERSION A version control tool

Zoom Plug-ins for Adobe

Flumes Short User Guide to Subversion

CSE 374 Programming Concepts & Tools. Laura Campbell (Thanks to Hal Perkins) Winter 2014 Lecture 16 Version control and svn

Introduction to Source Control Management in OO 10

ELF WP 2 UML repository instruction

CISC 275: Introduction to Software Engineering. Lab 5: Introduction to Revision Control with. Charlie Greenbacker University of Delaware Fall 2011

WORKING IN TEAMS WITH CASECOMPLETE AND MICROSOFT VISUAL SOURCE SAFE. Contents

Multi-user Collaboration with Autodesk Revit Worksharing

BitLocker To Go User Guide

TortoiseSVN 1.7 Beginner s Guide

Practice Fusion API Client Installation Guide for Windows

Lab 5 Managing Access to Shared Folders

Setting up a local working copy with SVN, MAMP and rsync. Agentic

5. At the Windows Component panel, select the Internet Information Services (IIS) checkbox, and then hit Next.

EAE-MS SCCAPI based Version Control System

Essential Visual Studio Team System

BlackBerry Link for Windows. Version: User Guide

Introduction to Version Control in

Software Delivery Integration and Source Code Management. for Suppliers

How to set up SQL Source Control. The short guide for evaluators

Work. MATLAB Source Control Using Git

WORKING IN TEAMS WITH CASECOMPLETE AND ACCUREV. Contents

INF 111 / CSE 121. Homework 4: Subversion Due Tuesday, July 14, 2009

Introducing Xcode Source Control

Backing Up Your Files. External Hard Drives

Version Control and Subversion. Dr Paul Tennent

TOAD and SubVersion - A Quick How To. Norman Dunbar of Dunbar IT Consultants Ltd.

Version control tracks multiple versions. Configuration Management. Version Control. V Software Engineering Lecture 12, Spring 2008

Training Events Database (TED) Setup Guide

Developing Solutions for Microsoft Dynamics AX in a Shared AOS Development Environment

Modulo II Software Configuration Management - SCM

PxPlus Version Control System Using TortoiseSVN. Jane Raymond

How To Run A Hello World On Android (Jdk) On A Microsoft Ds.Io (Windows) Or Android Or Android On A Pc Or Android 4 (

What Is Ad-Aware Update Server?

CSCB07 Software Design Version Control

Developing Software in a Private workspace PM PMS

Power Update - Documentation Power Update Manager

What is Subversion? Revision Control System made to replace CVS

Backing Up CNG SAFE Version 6.0

Version Control Tutorial using TortoiseSVN and. TortoiseGit

Contents. Getting Started...1. Managing Your Drives Backing Up & Restoring Folders Synchronizing Folders Managing Security...

Version Uncontrolled! : How to Manage Your Version Control

Moves and Renames in Apache Subversion 1.8 Stefan Sperling SVN Day 2012 (Jun 14)

Using SVN to Manage Source RTL

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.

CSE 70: Software Development Pipeline Build Process, XML, Repositories

Version Control with Subversion and Xcode

Software Configuration Management AE6382

This presentation introduces you to the Decision Governance Framework that is new in IBM Operational Decision Manager version 8.5 Decision Center.

Setting up the Oracle Warehouse Builder Project. Topics. Overview. Purpose

EVALUATION ONLY. WA2088 WebSphere Application Server 8.5 Administration on Windows. Student Labs. Web Age Solutions Inc.

STATISTICA VERSION 9 STATISTICA ENTERPRISE INSTALLATION INSTRUCTIONS FOR USE WITH TERMINAL SERVER

EMC Documentum Webtop

Introduction to Programming Tools. Anjana & Shankar September,2010

MATLAB & Git Versioning: The Very Basics

Librarian. Integrating Secure Workflow and Revision Control into Your Production Environment WHITE PAPER

Chapter 11 Sharing and Reviewing Documents

BlackBerry Link for Windows. Version: User Guide

Manual Password Depot Server 8

SPHOL207: Database Snapshots with SharePoint 2013

Version Control Systems (Part 2)

Version Control with Subversion

Version Control with Subversion

Version Control! Scenarios, Working with Git!

SonicWALL CDP 5.0 Microsoft Exchange InfoStore Backup and Restore

GE Intelligent Platforms. Activating Licenses Online Using a Local License Server

Pocket ESA Network Server Installation

QlikView 11 Source Control Walkthrough

TIBCO Spotfire Automation Services 6.5. User s Manual

Tool Tip. SyAM Management Utilities and Non-Admin Domain Users

Pragmatic Version Control

Table of Contents. FleetSoft Installation Guide

Transcription:

Configuration Management Each team should use the Subversion (SVN) repository located at https://svn-user.cse.msu.edu/user/cse435/f2014/<teamid> to provide version control for all project artifacts as well as their project web site. SVN provides an automated method for students to easily track changes/version for any programs and documents created during their time at MSU. For students using a Windows computer TortoiseSVN is the recommended client. The instructions provided below assume you are working on a Windows machine with TortoiseSVN client installed. SVN will be used by all CSE435 teams to maintain configuration control of all documents and files created as part of this course. Project Configuration Manager Responsibilities One team member will be designated as the Project Configuration Manager (PCM). This individual is responsible for setting up the team SVN repository and ensuring that all team members are placing project files within this repository. If PCM hasn t used SVN before, create a folder in My Documents for the repository. This will be your working folder. Right click on the folder and select SVN Checkout. You will be presented with a dialog box where you can enter the URL of the SVN repository. It should look similar to Figure 1. <TeamID> should be the team name, e.g. Steering1, Steering2, CACC, APA1, APA2, APCA1 APCA2, FSRACC1, FSRACC2, LMS. The checkout directory should be the path to your working folder for the project. Figure 1 - Sample SVN Checkout Dialog Window 1

Your working directory is now linked to the repository. At a minimum you should create a folder for your web site and a folder for all submissions. Using SVN commands Add and Commit this to the repository. Repeat this process to create each of the project related folders. Team members should already have access to the folders. Please verify with each member that they are able to access the repository. Team Member Responsibilities As project documents/files are created and modified the Project SVN repository should be used to maintain configuration control. To obtain access to the repository, each team member should create a project directory on their computer. This folder will be your working directory. Use your svn client to check out the repository. For TortoiseSVN this can be done by simply right clicking on the folder and selecting SVN Checkout. The URL to the repository will be: https://svn-user.cse.msu.edu/user/cse435/f2014/<teamid> To add a new file to the repository, create the file in your working directory. Use the Add command followed by Commit to place the file in the repository and make it available to the other team members. Before you start working on an existing file in the repository make sure to use the Update command refresh your working directory. This will download any updates made by other team members. Caution must use when two team members are working on the same file. The following is from the TortoiseSVN Help documentation: 2.2.1. The Problem of File-Sharing Consider this scenario: suppose we have two co-workers, Harry and Sally. They each decide to edit the same repository file at the same time. If Harry saves his changes to the repository first, then it's possible that (a few moments later) Sally could accidentally overwrite them with her own new version of the file. While Harry's version of the file won't be lost forever (because the system remembers every change), any changes Harry made won't be present in Sally's newer version of the file, because she never saw Harry's changes to begin with. Harry's work is still effectively lost - or at least missing from the latest version of the file - and probably by accident. This is definitely a situation we want to avoid! 2

Figure 2.2. The Problem to Avoid 2.2.2. The Lock-Modify-Unlock Solution Many version control systems use a lock-modify-unlock model to address this problem, which is a very simple solution. In such a system, the repository allows only one person to change a file at a time. First Harry must lock the file before he can begin making changes to it. Locking a file is a lot like borrowing a book from the library; if Harry has locked a file, then Sally cannot make any changes to it. If she tries to lock the file, the repository will deny the request. All she can do is read the file, and wait for Harry to finish his changes and release his lock. After Harry unlocks the file, his turn is over, and now Sally can take her turn by locking and editing. 3

Figure 2.3. The Lock-Modify-Unlock Solution The problem with the lock-modify-unlock model is that it's a bit restrictive, and often becomes a roadblock for users: Locking may cause administrative problems. Sometimes Harry will lock a file and then forget about it. Meanwhile, because Sally is still waiting to edit the file, her hands are tied. And then Harry goes on vacation. Now Sally has to get an administrator to release Harry's lock. The situation ends up causing a lot of unnecessary delay and wasted time. Locking may cause unnecessary serialization. What if Harry is editing the beginning of a text file, and Sally simply wants to edit the end of the same file? These changes don't overlap at all. They could easily edit the file simultaneously, and no great harm would come, assuming the changes were properly merged together. There's no need for them to take turns in this situation. Locking may create a false sense of security. Pretend that Harry locks and edits file A, while Sally simultaneously locks and edits file B. But suppose that A and B depend on one another, and the changes made to each are semantically incompatible. Suddenly A and B don't work together anymore. The locking system was powerless to prevent the problem - yet it somehow provided a sense of false security. It's easy for Harry and Sally to imagine that by locking files, each is beginning a safe, insulated task, and thus inhibits them from discussing their incompatible changes early on. 4

2.2.3. The Copy-Modify-Merge Solution Subversion, CVS, and other version control systems use a copy-modify-merge model as an alternative to locking. In this model, each user's client reads the repository and creates a personal working copy of the file or project. Users then work in parallel, modifying their private copies. Finally, the private copies are merged together into a new, final version. The version control system often assists with the merging, but ultimately a human being is responsible for making it happen correctly. Here's an example. Say that Harry and Sally each create working copies of the same project, copied from the repository. They work concurrently, and make changes to the same file A within their copies. Sally saves her changes to the repository first. When Harry attempts to save his changes later, the repository informs him that his file A is outof-date. In other words, that file A in the repository has somehow changed since he last copied it. So Harry asks his client to merge any new changes from the repository into his working copy of file A. Chances are that Sally's changes don't overlap with his own; so once he has both sets of changes integrated, he saves his working copy back to the repository. Figure 2.4. The Copy-Modify-Merge Solution 5

Figure 2.5....Copy-Modify-Merge Continued But what if Sally's changes do overlap with Harry's changes? What then? This situation is called a conflict, and it's usually not much of a problem. When Harry asks his client to merge the latest repository changes into his working copy, his copy of file A is somehow flagged as being in a state of conflict: he'll be able to see both sets of conflicting changes, and manually choose between them. Note that software can't automatically resolve conflicts; only humans are capable of understanding and making the necessary intelligent choices. Once Harry has manually resolved the overlapping changes (perhaps by discussing the conflict with Sally!), he can safely save the merged file back to the repository. The copy-modify-merge model may sound a bit chaotic, but in practice, it runs extremely smoothly. Users can work in parallel, never waiting for one another. When they work on the same files, it turns out that most of their concurrent changes don't overlap at all; conflicts are infrequent. And the amount of time it takes to resolve conflicts is far less than the time lost by a locking system. In the end, it all comes down to one critical factor: user communication. When users communicate poorly, both syntactic and semantic conflicts increase. No system can force users to communicate perfectly, and no system can detect semantic conflicts. So there's no point in being lulled into a false promise that a locking system will somehow prevent conflicts; in practice, locking seems to inhibit productivity more than anything else. There is one common situation where the lock-modify-unlock model comes out better, and that is where you have unmergeable files. For example if your repository contains 6

some graphic images, and two people change the image at the same time, there is no way for those changes to be merged together. Either Harry or Sally will lose their changes. 2.2.4. What does Subversion Do? Subversion uses the copy-modify-merge solution by default, and in many cases this is all you will ever need. However, as of Version 1.2, Subversion also supports file locking, so if you have unmergeable files, or if you are simply forced into a locking policy by management, Subversion will still provide the features you need. Word processing files, spreadsheets, graphics are unmergeable files. When modifying these files team members should coordinate these changes with other team members or agree to use the Lock-Modify- Unlock Solution described above. 7