Version Control with Subversion

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.
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).
2 Using Source Control effectively Nothing is ever “gone forever” Hoa Hoang.
Version Control System Sui Huang, McMaster University Version Control SystemSui Huang, McMaster University Version Control System -- base on Subversion.
SOFTWARE REVISION CONTROL WITH SUBVERSION Evan Dickinson & Andy Huang – 9 March 2011.
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.
Using subversion COMP 2400 Prof. Chris GauthierDickey.
Version Control Systems Phil Pratt-Szeliga Fall 2010.
Source Control Repositories for Enabling Team Working Svetlin Nakov Telerik Corporation
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.
Version Control. What is Version Control? Manages file sharing for Concurrent Development Keeps track of changes with Version Control SubVersion (SVN)
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.
Introduction to Git and Github Joshua imtraum.com.
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.
The Design Workshop Introduction to Version Control 1.
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.
Warmup A programmer’s wife tells him, “Would you mind going to the store and picking up a loaf of bread? Also, if they have eggs, get a dozen.” The programmer.
Version control Using Git Version control, using Git1.
SharePoint document libraries I: Introduction to sharing files Sharjah Higher Colleges of Technology presents:
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
(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.
Subversion (SVN) A Revision Control System Successor to CVS Carlos Armas Hervey Allen.
SENG 403 Tutorial 1 1SENG 403 – Winter Agenda Version Control Basics Subversion Basic actions in Subversion Some examples 2SENG 403 – Winter 2012.
Computer Science and Engineering The Ohio State University  Widely used, especially in the opensource community, to track all changes to a project and.
Subversion is a free/open-source version control system. It manages files and directories, and the changes made to them, over time. This allows you to.
Version Control with SVN Images from TortoiseSVN documentation
Refactoring and Synchronization with the StarTeam Plug-in for Eclipse  Jim Wogulis  Principal Architect, Borland Software Corporation.
A Simple Introduction to Git: a distributed version-control system CS 5010 Program Design Paradigms “Bootcamp” Lesson 0.5 © Mitchell Wand, This.
Sabriansyah R.A Version Control. The Repository Subversion adalah sistem tersentralisasi untuk informasi sharing Repository adalah pusat penyimpanan data.
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.
Version control and Subversion (svn)
SECTION 1: CODE REASONING + VERSION CONTROL slides borrowed and adapted from Alex Mariakis and CSE 390a Justin Bare & Deric Pang.
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.
© CGI Group Inc. User Guide Subversion client TortoiseSVN.
Source Control Dr. Scott Schaefer. Version Control Systems Allow for maintenance and archiving of multiple versions of code / other files Designed for.
CSE 390 Lecture 9 Version control and Subversion (svn)
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.
Sharing and Synching files
Version Control CS These slides were created by Kevin Schenk, BS in Computer Science, Purdue University, 2012.
SVN intro (review).
Source Control Dr. Scott Schaefer.
Version control and Subversion (svn)
CSE 303 Concepts and Tools for Software Development
Subversion.
Concurrent Version Control
Version Control System
Version Control with Git accelerated tutorial for busy academics
User Guide Subversion client TortoiseSVN
Subversion Basics Guide
CSE 390 Lecture 9 Version control and Subversion (svn)
Git CS Fall 2018.
Git started with git: 2018 edition
CSE 390 Lecture 9 Version control and Subversion (svn)
Version control and Subversion (svn)
Version control and Subversion (svn)
Version control and Subversion (svn)
Version Control 101 with Subversion
Presentation transcript:

Version Control with Subversion Quick use setup of Subversion in TAGD

What is Version Control? An alternative to sending zipped source code back and forth by email and manually integrating changes between more than one person “Version Control” is meant to solve the following problems: Users editing the same file concurrently overwriting each other Keeping users sharing the same source code that is in constant change in sync Keeping a running history of changes (and who did them) Recovering from disastrous changes in source code Is WONDERFUL for group work (and is an industry standard!) Also called “Source Control" Subversion aims to be a simple to use, secure, and safe way to do Version Control

Workflow Without Source Control

Workflow with Source Control

Benefits Group Work Group and Individual Work No zipping/unzipping from emails Manually merging is very rare Might be the only solution when you have more than 2 or 3 participants Group and Individual Work History of changes Sync when using multiple computers Easy backup

Requirements If you can develop on it, you can run subversion on it Can be configured to run on standalone custom server (easy), apache (advanced but featureful), or local on file system. TAGD provides free repositories on request

Some Definitions Repository – the place (can be server or location on hard drive) that the “master” files are stored. Managed by Subversion Working Copy – a “checked out” code you make your changes in Commit – applying a change to the code on the repository Update – downloading and merging all changes from repository into your working copy

Some more definitions Changeset – refers to a “commit,” is a list of files touched during that commit. Every changeset is ordered starting from 1 to however many commits there have been Conflict – When a user edits and commits a file while another user is editing the same lines. The second user can’t commit until he manually merges the conflicting lines. Rarely happens and is avoidable!!

What is Subversion? Robust, easy, and popular implementation of Version Control Very similar but “better” than CVS (a popular older Version Control System Everything is versioned (including renames and file meta-data) Atomic Commits (never a bad partial commit!) Many deployment options Well documented Named “SVN” for short http://subversion.tigris.org/

What is TortoiseSVN A very easy to use windows-integrated Subversion front-end We use it a lot at TAGD Makes your right click menus look like this…

A quick run-through of subversion Make a new repo on our hard drive Import our existing code to the repo Check out a working copy Make changes Add a file/folder Remove a file/folder Edit a file Commit Revert Comparing

Create a Repo Make a new folder, right click, svn > create Use FSFS Generally better to use over a network (but that’s out of scope for this tutorial) Repository over network can be provided by TAGD

My stuff is here

Import your code

Do the import The URL is file:///[where you made it] URL will be provided if you request a repository

Check out your working copy Make a folder, right click on it, choose “checkout” Fill in the URL

Add a folder/file Add the documents Delete some documents

Edit a file Make an edit Icons change on files

Commit changes Nothing changes until you commit

Reverting (rollback) If you have not committed If you have committed

Comparing to old revisions Right click > SVN > Diff

Comparing right before commit Double click

View the logs

Avoiding Conflicts Commit Often! Commit in small chunks! The less time you spend with code you havn’t committed, the less likely someone will edit a line you’ve not committed. Commit in small chunks! The less code you change and don’t commit, the less likely someone will edit a line you’ve not committed. Split your project into more than one file! You should be doing this anyways 

What not to do… Don’t commit broken code If someone else updates, they will have broken code too and will be unable to work unless they fix your mess Don’t commit temporary/binary files We don’t need files like vore.vcproj.SNOWFIRE.philipd.user or any .exe or .obj files. They waste space! You MAY commit graphics as long as they aren’t too big. Binary files don’t get merged. Don’t commit ginourmous files Remember, if you put it in the repository you force people to download it! A good alternative for optional files that are big is to put them on a web server – particularly if they don’t change

What to do.. When you commit, describe in the log as succinctly and clearly what you changed as possible This information will help others know what you did to the code Add your new files If you make a new file, make sure to right click and add it to source control. If you don’t, others won’t be able to get it. EXAMPLE: In a game, you add a bitmap file. If you forget to add it to the subversion, when others synchronize, they download your code but not the bitmap. Now when they run the game, it crashes because it can’t find your file.

DO NOT COMMIT TO REPOSITORIES THAT YOU DO NOT OWN UNLESS YOU HAVE TALKED WITH AN OWNER OF THAT REPOSITORY FIRST!!! I’ll break your arm off

Getting the Software If you are hosting (or downloading with command line) you will need Subversion(http://subversion.tigris.org/project_packages.html) If you are using under windows you will need only TortoiseSVN (http://tortoisesvn.net/downloads)

TAGD BigGame Repository Create a new folder Right click, check out Trac URL: http://tagd-dev.cs.tamu.edu/vore/ Don’t forget the trailing “/”