(1) Introduction to Subversion (SVN) and Google Project Hosting Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences.

Slides:



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

Software engineering tools for web development Jim Briggs 1CASE.
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.
1. What is Subversion? Why do we need CM? Basic concepts Repositories Options Setup Clients Options Setup Operation Troubleshooting Slide 2.
Version Control System (Sub)Version Control (SVN).
Version Control CS440 – Introduction to Software Engineering © 2014 – John Bell Based on slides prepared by Jason Leigh for CS 340 University.
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.
Version Control Systems Phil Pratt-Szeliga Fall 2010.
Source Control Repositories for Enabling Team Working Svetlin Nakov Telerik Corporation
By Steven Campbell and Erik Boone.  Sharing projects by putting them into a central repository.  Checking out copies of projects from the repository.
Source Code Revision Control Software CVS and Subversion (svn)
Version control Using Git 1Version control, using Git.
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.
Programming in Teams And how to manage your code.
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.
Subversion Code Deployment LifeCycle August 2011.
Version control Using Git Version control, using Git1.
Subversion (SVN) Tutorial Source:
Version Control. How do you share code? Discussion.
Object-Oriented Analysis & Design Subversion. Contents  Configuration management  The repository  Versioning  Tags  Branches  Subversion 2.
Version Control Menggunakan TortoiseSVN
(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.
Introduction to Version Control SE-2030 Dr. Rob Hasker 1 Based on material at and slides written.
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.
Computer Science and Engineering The Ohio State University  Widely used, especially in the opensource community, to track all changes to a project and.
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
Version Control Reducing risk with version control Jon Austin
SWGData and Software Access - 1 UCB, Nov 15/16, 2006 THEMIS SCIENCE WORKING TEAM MEETING Data and Software Access Ken Bromund GST Inc., at NASA/GSFC.
Copyright © Curt Hill Tortoise SVN A Subversion Client.
L.T.E :: Learning Through Experimenting Using google-svn for MtM Docs Development Denis Thibault Version 3.2 Mar 12 th, 2009.
(1) Installing the Software ICU Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of Hawaii Honolulu.
(1) Introduction to Continuous Integration Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of.
(1) Introduction to Continuous Integration Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of.
Introduction to Git Yonglei Tao GVSU. Version Control Systems  Also known as Source Code Management systems  Increase your productivity by allowing.
Subversion (SVN) is a widely used version control system and an essential piece of the MIMES collaborative modeling environment. It allows us to manage.
(1) Code Walkthrough robocode-pmj-dacruzer Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of.
TEAM FOUNDATION VERSION CONTROL AN OVERVIEW AND WALKTHROUGH By: Michael Mallar.
(1) Introduction to Subversion (SVN) and Google Project Hosting Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences.
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 Ivan Marsic Rutgers University LECTURE 2: Software Configuration Management.
DIGITAL REPOSITORIES CGDD Job Description… Senior Tools Programmer – pulled August 4 th, 2011 from Gamasutra.
1 Subversion Kate Hedstrom April Version Control Software System for managing source files –For groups of people working on the same code –When.
SWIM Project Meeting, Bloomington, IN September 2006 Working with the SWIM Code Repository David E. Bernholdt Oak Ridge National Laboratory
Introduction to Subversion Getting started with svn Matteo Vescovi 19/02/2010.
GIT Version control. Version Control Sharing code via a centralized DB Also provides for Backtracking (going back to a previous version of code), Branching.
Subversion Subversion is a brand of version control software that is frequently used to store the code and documentation of a project so as to permit.
4 Version control (part 1)
Version Control Systems
Subversion for administrators
SVN intro (review).
LECTURE 2: Software Configuration Management
Version Control.
Version control, using Git
Development and Deployment
Concurrent Version Control
LECTURE 3: Software Configuration Management
User Guide Subversion client TortoiseSVN
Subversion Basics Guide
Git CS Fall 2018.
Prof. Hilfinger CS164 Lecture 4
Patrick Cozzi University of Pennsylvania CIS Fall 2012
Presentation transcript:

(1) Introduction to Subversion (SVN) and Google Project Hosting Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of Hawaii Honolulu HI 96822

(2) Basic concepts SVN uses a centralized repository. We will not cover repository administration. Clients connect to a repository to download working copies. Working copies: Ordinary directory trees. Contains your files plus administrative files in special subdirectories named '.svn'.

(3) Updates, Commits, Revisions Working copy: A local directory tree Commit: Upload your working copy to the SVN server. Creates a new repository-wide "revision", or snapshot of the state of the repository. Update: Make some or all of your working copy consistent with a given revision. You can update to the - latest revision - any prior revision

(4) Review: Versions/Configurations for RCS/CVS style CM Each file has its own version number. Foo.java (1.1) Foo.java (1.2) Foo.java (1.3) Foo.java (1.4) Foo.java (1.5) Foo.java (1.2.1) Foo.java (1.2.2) Bar.java (1.1) Bar.java (1.2) Bar.java (1.3)

(5) SVN has repository-wide revisions Each time you commit, you 'stamp' not the files you commit with a new version, but the entire repository. File changes color to indicate changed contents, but Subversion doesn’t maintain a file-based “version number”. Foo.java Bar.java r1r2r3r4r5 Bar.java

(6) "Copying" in SVN is cheap The database backend in SVN means that you can make "copies" of an SVN directory structure very cheaply. No files are physically copied, just pointers to the files and info on which revision. This means that you create branches, tags, and the "trunk" by creating and merging directories that each contain an entire "copy" of an arbitrary number of files.

(7) Trunk, Branches, Tags SVN project directories are structured by convention with three top-level directories: trunk/ Represents the 'main line' of development with an entire copy of the project. branches/ Contains subdirectories, each holding an entire copy of the project. Each branch constitutes a significant enhancement to the project that can be worked on independently. tags/ Contains subdirectories, each containing one snapshot of the project. Each snapshot represents a "public release" or other archival configuration of the project.

(8) Example /stack/ trunk/ build.xml src/ : tags/ release-1.0/ build.xml src/ : branches/ add-generics/ build.xml src/ : add-intstack/ build.xml src/ :

(9) Trunk vs. Branch Trunk represents "gold" version of system Should always compile, always pass tests. In this class, it means passing the “verify” target! Branches represent "temporary" development streams to implement significant new features. Allow commits to repository without breaking the "gold" version in the trunk. Branches don't need to always compile, pass tests. You must "merge" a branch back into the trunk when completed. Or at intermediate points when branch is "stable". The longer you wait to merge, the more difficult the merge might be.

(10) Our SVN server: Google Google provides a free service for hosting open source projects. Includes: SVN server Mailing lists Issue tracker We will use Google Project Hosting this semester for all class projects. Also good choice for hosting your future open source projects! Alternatives: SourceForge, GitHub

(11) Local SVN Client Choices Upcoming examples of local workspace manipulation use TortoiseSVN client program. Best choice for Windows. Other clients exist for other platforms For Mac I use: SmartSVN

(12) Google Project Hosting Home: Docs:

(13) Basic Use Cases A. Project source download B. Basic workflow D. Defining a new Project

(14) Project Download Preconditions: Obtain the URL for the project. If commit access is desired: Obtain membership in project Get your SVN password SVN 'checkout' the 'trunk' to your local computer Use ‘http’ URL for anonymous, read-only Use ‘https’ URL for commit access.

(15) Project Workflow 1. Update: "SVN Update" to make your local workspace consistent with latest version from repository. 2. Run "verify" target Make sure your updated local version is running correctly. 3. Edit: Make improvements to the Project files. 4. Run "verify" target Make sure system works correctly before committing! 3. Commit: "SVN Commit" to 'publish' your improvements to the repository.

(16) Creating a new project 1. Define the new project with Google Project Hosting. Add initial members. Set up discussion list in google groups. Get your SVN password. 2. Populate the SVN repository Checkout the 'trunk' directory to a newly created local directory. Add project files/directories to that directory. SVN 'add' those files. SVN 'commit' those files.

(17) E. Beyond basic usage SVN has many other useful features: Using branches to isolate development - Most complex part of SVN usage. SVN Blame - Show who committed last version of each line in the file. SVN Switch - Move between trunk, branches, tags. These will be covered later as need arises.

(18)