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

Slides:



Advertisements
Similar presentations
TortoiseSVN By Group 1 Team B. Installing TortoiseSVN.
Advertisements

Intro to Version Control Have you ever …? Had an application crash and lose ALL of your work Made changes to a file for the worse and wished you could.
 Please sit next to your partner.  If you don’t have a partner, please find one now.
TortoiseSVN Tutorial TortoiseSVN Tutorial By: Dung Nguyen Date: May 26 th, 2008 Duration: 1h30’ By: Dung Nguyen Date: May 26 th, 2008 Duration: 1h30’ Topic:
Version Control 1.  Version control (or revision control) is the term for the management of source files, and all of the intermediate stages as development.
Version Control System Sui Huang, McMaster University Version Control SystemSui Huang, McMaster University Version Control System -- base on Subversion.
Revision Control Systems Amin Tootoonchian Kian Mirjalali.
Dedi Rahmawan Putra  Shared Document  Conventional Ways  Common Problems  What is TortoiseSVN  Advantages over another tools  Basic Concepts.
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.
Low level CASE: Source Code Management. Source Code Management  Also known as Configuration Management  Source Code Managers are tools that: –Archive.
Damien Guard (BSc, MBCS) Guernsey Software Developer Forum Change management with Subversion.
Source Control Repositories for Enabling Team Working Svetlin Nakov Telerik Corporation
SubVersioN – the new Central Service at DESY by Marian Gawron.
European Organization for Nuclear Research Source Control Management Service (Subversion) Brice Copy, Michel Bornand EN-ICE 13 May 2009.
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: Part 1 Overview & Object Model These slides were largely cut-and-pasted from tutorial/, with some additions.
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.
Subversion. What is Subversion? A Version Control System A successor to CVS and SourceSafe Essentially gives you a tracked, shared file system.
Source Control Repositories for Team Collaboration: SVN, TFS, Git.
The Design Workshop Introduction to Version Control 1.
The new version control system. Kiril Karaatanasov, July 2006 What is Subversion Subversion is a newly developed open source version control system Subversion.
Version Control with Subversion Quick Reference of Subversion.
Subversion Code Deployment LifeCycle August 2011.
Git – versioning and managing your software L. Grewe.
Subversion (SVN) Tutorial for CS421 Dan Fleck Spring 2010.
Subversion (SVN) Tutorial Source:
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.
Object-Oriented Analysis & Design Subversion. Contents  Configuration management  The repository  Versioning  Tags  Branches  Subversion 2.
Version Control Systems with Subversion (SVN) and Tortoise.
Version Control Menggunakan TortoiseSVN
Subversion (SVN) A Revision Control System Successor to CVS Carlos Armas Hervey Allen.
Introduction to Version Control SE-2030 Dr. Rob Hasker 1 Based on material at and slides written.
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.
Team 708 – Hardwired Fusion Created by Nam Tran 2014.
CSE 219 Computer Science III CVS
INFSO-RI Enabling Grids for E-sciencE SCDB C. Loomis / Michel Jouvin (LAL-Orsay) Quattor Tutorial LCG T2 Workshop June 16, 2006.
Copyright © Curt Hill Tortoise SVN A Subversion Client.
CVS: Concurrent Version System Lecturer: Prof. Andrzej (AJ) Bieszczad Phone: “UNIX for Programmers and Users” Third.
Sabriansyah R.A Version Control. The Repository Subversion adalah sistem tersentralisasi untuk informasi sharing Repository adalah pusat penyimpanan data.
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.
Version control and Subversion (svn)
WinCVS Training è Basic Concepts è Download & Setup è Importing a new module into CVS Repository è Getting new module from CVS è Getting Latest version.
1 CSE 303 Lecture 19 Version control and Subversion ( svn ) slides created by Marty Stepp
(1) Introduction to Subversion (SVN) and Google Project Hosting Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences.
Subversion (SVN) Tutorial for CS421 Dan Fleck Spring 2010.
Source Control Repositories for Enabling Team Working Doncho Minkov Telerik Corporation
© CGI Group Inc. User Guide Subversion client TortoiseSVN.
NALINI S. NAUTIYAL SYSTEM SOFTWARE DIVISION Subversion.
1 Subversion Kate Hedstrom April Version Control Software System for managing source files –For groups of people working on the same code –When.
Problem Solving With C++ SVN ( Version Control ) April 2016.
Version Control Using Subversion Tom Hilinski Natural Resource Ecology Laboratory Colorado State University October 2007
GIT Version control. Version Control Sharing code via a centralized DB Also provides for Backtracking (going back to a previous version of code), Branching.
Version Control with Subversion
SVN intro (review).
Source Control Dr. Scott Schaefer.
Version Control with Subversion (SVN)
CSE 303 Concepts and Tools for Software Development
Subversion.
Concurrent Version Control
Software Version System Part1: Subversion at CERN
slides borrowed and adapted from Alex Mariakis and CSE 390a
User Guide Subversion client TortoiseSVN
Subversion Basics Guide
Prof. Hilfinger CS164 Lecture 4
Version Control 101 with Subversion
Presentation transcript:

1

What is Subversion? Why do we need CM? Basic concepts Repositories Options Setup Clients Options Setup Operation Troubleshooting Slide 2

A centralized version control system Not the newest form of configuration management, but easy to use and popular Founded in 2000 Successor to widely used CVS Aka SVN Slide 3 Repository

Inconsistent updates Work is lost! Slide 4 * Pictures taken from “Version Control with Subversion” Pilato, Collins-Sussman & Fitzpatrick, O’Reilly press

Prevents concurrent work, slows down development Subversion can do this, but it’s usually not the best way Slide 5

Slide This is much better, Subversion does it too

Revision (version) numbers are for the entire repository, not for each file Slide 7 D B C E A B C E A B Rev 0 Rev 1 Rev 2Rev 3

Each user’s real time editing is on their own working copy Normal file stored on in the local file system Working copy is created by “checking out” the repository Subversion remembers the relationship between the working copy and the repository revision it is based upon Information stored in “.svn” directories; don’t mess with them! Each working file in 1 of 4 states Unchanged and current Locally changed and current Unchanged and out of date Locally changed and out of date Slide 8 Repository

Slide 9 Repository Working Copy checkout R4 update R5 R5 modified commit R6 Local Edit Another user commits

Slide 10 Repository Working Copy checkout R4 update R5 R5 modified R4 modified commit R6 Local Edit Another user commits commit Fail – out of date

Many code hosting sites include a subversion server Google Code, Assembla, etc This is the easy way!! Can also view repo through a web interface Can install subversion on a server which all users can access and create your own repository svnadmin is the command line tool svnadmin create --fs-type fsfs /srv/svn/test Two backend options; Berkeley DB and FSFS Use FSFS!! Slide 11

Any repository has a URL which is necessary to configure the clients e.g. By convention, each project in a repository has 3 top level directories: trunk Main line development branches Allows experimental/developmental work without breaking the trunk tags Can be used to name “special” revisions Slide 12

Many, many different subversion clients available All follow the same subversion model If you understand the model you should understand the tool All use the same working file information Some operations are easier in some tools Can be worth using more than one Slide 13

TortoiseSVN ( Windows, integrates with explorer shell Very easy to use, powerful kdesvn ( Linux KDE, standalone application Full featured, very powerful Subclipse ( Eclipse plugin, excellent integration Can’t afford to be without this if working in eclipse! svn – standard command line tool Very similar to *nix commands: “svn mv”, “svn rm”, etc Useful for maintaining/troubleshooting working copies Useful for integration into scripts Slide 14

Slide 15 Use this to view and checkout new repositories Always important to understand what is in the repository vs local file system

Slide 16

Slide 17 Symbol on bottom right of icon shows status of local file In repository and up no local changes made Not yet added to repository Local changes not yet committed Base revision, date, and author

Slide 18

Slide 19 Adding comments is a good habit to get into Select which (changed or added) files to commit

Slide 20

Slide 21

Slide 22

Slide 23

Slide 24 Left shows all revisions at which a particular file changed For one of these revisions… Top right shows comment against the revision Bottom right shows all files which changed at that revision

Slide 25 For every line in a file; shows last date and revision it was changed Also shows who did it!

Slide 26 Shows exactly what state subversion believes each file is in Very useful first step if you are getting error messages on commit or update

Slide 27 Key for understanding the symbols used by svn status command Help on any command is available with svn help

svn help COMMAND- Show help for specified command svn import LOCALDIR URL- Add new tree to repository svn checkout URL [LOCALDIR]- Create new working copy from URL svn update- Bring remote changes into working copy svn add FN- Add new file to working copy svn delete FN- Remove existing file svn copy FN1 FN2- Duplicate existing file svn move FN1 FN2- Move or rename existing file svn mkdir DR- Convenient way of making and configuring new directory svn status- Show status of specified files (very powerful and useful) svn diff- Diff local copy to last update svn revert FN- Revert FN to checkout version (or remove pending add/del) svn commit -m XXX- Commit changes, with log message XXX svn log- Shows log of all changes to a file svn diff -r X- Compare working copy to rev X svn cat -r X- Show version X svn list -r X- Show all files present at rev X svn cleanup- Checks directory for outstanding locks or partially completed operations svn log -r Read about everything checked in at rev 9238 svs copy FN- Resurrect FN at deleted rev 807 svn lock FN -m XXX- Place a lock on FN svn unlock FN- Remove lock. Other users can often forcibly remove a lock Slide 28

Don’t delete, rename, or mess with.svn directories Don’t use normal file system operations to delete, rename or move files in a working copy Use the svn versions instead Don’t try and move directories Create a new directory, move files, delete old directory (problem I had may be tool or version dependant) Don’t move and edit a file in the same revision Do a commit between the two versions Don’t try and using branching without understanding what you’re doing Slide 29

Slide 30