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.

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.
Ravi Mathur Updated December 5,  ODTBX uses Git (see the ODTBX Git Tutorial) ODTBXODTBX Git Tutorial ◦ SourceForge account needed (free). SourceForge.
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.
Using subversion COMP 2400 Prof. Chris GauthierDickey.
Command Console Tutorial BCIS 3680 Enterprise Programming.
Working with SharePoint Document Libraries. What are document libraries? Document libraries are collections of files that you can share with team members.
SubVersioN – the new Central Service at DESY by Marian Gawron.
Getting Started with GIT. Basic Navigation cd means change directory cd.. moves you up a level cd dir_name moves you to the folder named dir_name A dot.
Panorama High School E.G.P./ Training to Put Students’ Grades on the Website Wednesday, September 29,
1 Topics for this Lecture Software maintenance in general Source control systems (intro to svn)
The SAU Website Workshop. Using the site Website Management The Campus Directory Form Manager Other available resources.
Moodle (Course Management Systems). Assignments 1 Assignments are a refreshingly simple method for collecting student work. They are a simple and flexible.
Subversion Code Deployment LifeCycle August 2011.
Subversion (SVN) Tutorial for CS421 Dan Fleck Spring 2010.
Prepared by: Steve Teo Contributors: Tong Huu Khiem.
Object-Oriented Software Engineering Using UNIX groups and Subversion Estimated Time: minutes “Unix is user-friendly. It's just very selective about.
Object-Oriented Software Engineering Using UNIX groups and CVS Estimated Time: minutes.
Object-Oriented Analysis & Design Subversion. Contents  Configuration management  The repository  Versioning  Tags  Branches  Subversion 2.
Basic Instructions on how to use One Drive and share files. ONE Drive Your LogoYour own footer.
Using Subversion and TortoiseSVN for Windows by Galen Wilkerson Gund Institute for Ecological Economics University of Vermont
Version Control Menggunakan TortoiseSVN
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.
Excel Electronic Membership Directions, Examples and Operational Hints. Created by: Jim Armbruster.
Publishing Your Web Pages Ann Emmanuel SIUE Web Administrator
Prepared by: Steve Teo Contributors: Tong Huu Khiem.
Using This PowerPoint This PowerPoint presentation assumes your Computer Science teacher has provided you with the InstallingJava folder, which contains.
Copyright © Curt Hill Tortoise SVN A Subversion Client.
When collaborating, it is important to manage changes in the models. For example: –To create or edit a submodel E.g. Habitat suitability is replaced with.
L.T.E :: Learning Through Experimenting Using google-svn for MtM Docs Development Denis Thibault Version 3.2 Mar 12 th, 2009.
Module 5 GemStall Overview
Subversion (SVN) is a widely used version control system and an essential piece of the MIMES collaborative modeling environment. It allows us to manage.
Subversion (SVN) Tutorial for CS421 Dan Fleck Spring 2010.
© CGI Group Inc. User Guide Subversion client TortoiseSVN.
BIT 285: ( Web) Application Programming Lecture 07 : Tuesday, January 27, 2015 Git.
Git A distributed version control system Powerpoint credited to University of PA And modified by Pepper 28-Jun-16.
GIT Version control. Version Control Sharing code via a centralized DB Also provides for Backtracking (going back to a previous version of code), Branching.
MicrosoftTM SharePoint Content Management SystemTutorial
Development Environment
Discussion #11 11/21/16.
Setting up Categories, Grading Preferences and Entering Grades
Version Control with Subversion
SVN intro (review).
Discussion 11 Final Project / Git.
Version Control overview
Single Sample Registration
A Simple Introduction to Git: a distributed version-control system
Database application MySQL Database and PhpMyAdmin
Exporting and Importing Blackboard Course Materials
Assignment Preliminaries
Storing, Sending, and Tracking Files Recitation 2
Concurrent Version Control
Instructor: Prasun Dewan (FB 150,
slides borrowed and adapted from Alex Mariakis and CSE 390a
UNITY TEAM PROJECT TOPICS: [1]. Unity Collaborate
Compilers, Make and SubVersion
Managing Rosters Screener Training Module Module 5
User Guide Subversion client TortoiseSVN
CTAERN/DOE System Level Counselor Coordinator Profile Entry Initiative
New Perspectives on Windows XP
CGS 3175: Internet Applications Fall 2009
Git CS Fall 2018.
CTAERN/DOE System Level Counselor Coordinator Profile Entry Initiative
Scripts In Matlab.
Review of Previous Lesson
Executive Reports, Instructions and Documentation
Using GitHub for Papyrus Models Jessie Jewitt – OAM Technology Consulting/ ARM Inc. January 29th, 2018.
Presentation transcript:

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 earlier versions of a project to be retrieved and branches in the project to be stored and retrieved. Subversion is a centralized repository system as opposed to, say Git, which is a decentralized system. We provide a subversion repository for you to protect and submit your homework. For this purpose we prefer Subversion to other good repository systems like git.

Subversion We will use subversion in a very limited way with scripts and gui software to make your applications easy. However, you may wish to delve into the features of subversion on your own. For that purpose see subversion's documentation. If you will be working on a windows machine, a good way to handle submitting homework is the gui program tortosieSVN For a mac or windows machine, use the scripts described below. svn status | grep '^!' | awk '{print $2}' | xargs svn delete svn status | grep "^\?" | awk '{print $2}' | xargs svn --force add svn commit -m ""

Your local homework repository Your local repository will be the directory (on your computer) in which you save the homework solutions you wish hand in. You can use it as a solution development repository so as to save important intermediate solutions of your homework. Note however that it will be important to clearly distinguish development folders from assignment solution folders. The master repository where you will hand in your homework and where you can save your intermediate work is http://classes.cs.kent.edu/courses/cs38101/svn/F2015/yourCSUserName

Creating your local repository:Windows Open a window to the folder where you want to it to be. Right click to bring the menu at the right Select SVN Checkout to bring up the menu. Add the correct url for the repository. Note that this example shows the master repository for Fall 2015 and the student's cs username was ruttan. Also note that output directory is listed as C:\user\ruttan\Desktop\ruttan but for you it should be yourdirectory/yourCSUserName Click OK

Creating your local repository:Windows Enter your username and password if requested (ie not saved before):

Output from checkout:Windows The result of the checkout command should be a folder with your username on it which contain 4 files plus a hidden .svn directory and a window like the one below Note that that window tells you the location of the folder it created and the revision number which identifies the version of the data downloaded. Click OK.

Deleting local repository files: Windows Your local repository should look like except perhaps for the .svn which is not visible unless (as I did) you set your window to show hidden files. The .sh files in the repository will not be used by individuals using TortoiseSVN. So we will show how do delete them.

Deleting local repository files:Windows Highlight the files you wish to delete, right click on the highlighted files and select TortoiseSVN->Delete This removes the files from the local repository but does not remove them from the master repository

Updating the master repository:Windows To update the master repository right click in the window and select commit

Updating the master repository: Windows Select OK to confirm that you wish to delete the files

Updating the master repository:Windows Note the new revision number and select ok.

Adding files to your local repository Using explorer add the files shown to your local repository folder except for the .svn which was created when the folder was checked out and which is not visible unless (as I did) you set your window to show hidden files.

Adding files to SVN's list:windows To inform subversion (svn) that you have add files that you want to save in the master repository right click in the repository folder and select TortoiseSVN->Add

Adding files to SVN's list:Windows Deselect any files/folders that you don't want added to the master folder and click ok.

Adding files to SVN's list:Windows A list of files added is then produced. Click OK Nothing is actually add at this point. Only the files in .svn are updated to include the new files or folders.

Committing to the master repository:Windows With your mouse in the local repository window right click and select SVN Commit.

Commit process:Windows Before updating you will be given a list of the files to be added. Deselect any you do not wish to store in the master repository (e.g. development files). You can, if you wish, add a message at the top to indicate the nature of the addition Click OK.

Committing process: windows Enter you CS username and password if requested. The new files/folders will be copied/deleted to the master repository. This command is atomic in that either all of the files are copied or the master repository doesn't change. Depending on the size of the files this process can take a long time Note the new revision number.

SVN:Mac, Cygwin, Unix Subversion comes natively on each of these platforms, but on these subversion is a command line application. There are gui subversion applications for each of these platforms but they are not commonly used. The subversion command for add, delete, commit, and export are explained the the subversion documentation. However to assist you I have created bash scripts to invoke them.

SVN:Mac, Cygwin, Unix To use subversion directly or with the supplied bash scripts you will need to open a bash shell. On Mac's go to Applications->Utilities- >Terminal. On the other platforms the command is similar. Navigate to the folder you want to use as you local repository and enter the command (with yourCSUserName replaced appropriately) svn co http://classes.cs.kent.edu/courses/cs38101/svn/F2015/yourCSUserName

SVN:Mac, Cygwin, Unix Enter your CS username and password when asked. You will be asked if you want to save it on your computer. In order to add, delete or commit, or export at the top level to the folder containing add.sh,delete.sh, commit.sh and export.sh and enter the command ./add.sh, ./delete.sh, or ./commit.sh

SVN:Mac, Cygwin, Unix To process a level below that cd to that directory and use ../add.sh, ../delete.sh, etc, To process two level below the top cd to that directory and use ../../add.sh, ../../delete.sh, etc Alternately use the absolute path to the to files add.sh, etc in the directory you wish to process.

SVN:Mac, Cygwin, Unix To process a level below that cd to that directory and use ../add.sh, ../delete.sh, etc, To process two level below the top cd to that directory and use ../../add.sh, ../../delete.sh, etc Alternately use the absolute path to the to files add.sh, etc in the directory you wish to process.

SVN:Mac, Cygwin, Unix It should be noted that these commands are not as forgiving as the TortoiseSVN versions. Once initiated this commands do not give you a choice to change the list of files. The add.sh command will affect any unadded file/directory in the subtree rooted at the directory used. The delete.sh command will remove any deleted file/directory in the subtree rooted at the directory from master repository. The commit.sh file will add/delete the added/deleted files in the subtree rooted at the directory in master repository. The export.sh command copies a clean copy from as given source directory to a output directory. The command line format is pathtoexportfile/export.sh pathtosource pathtooutput See example below.

Adding a single Directory In the previous examples we add files to the top level directory of the local repository, and then committed the entire top level to the master repository. It is possible to add the contents of just one of those subdirectories at a time to the master directory. If the subdirectory is not already in the master repository, it and all of its parents must be added from a higher level directory that is the master repository. You'll get an error if it isn't in the master Then add what ever files you wish to that subdirectory. Then open a window to that subdirectory. Performing the add and commit command in TortoiseSVN in that subdirectory will update the master repository.

Building homework solutions You should not develop your assignments in the local repository assignment folders. The development process is generally too disorganized to provide a suitably organized solution. Develop your project in some other directory on your computer. The development folder in the local repository was supplied for that purpose. Periodically commit the development folder to master repository to protect your code from loss. Use export as shown below to copy a clean solution to the appropriate assignment folder. Edit that folder to remove unnecessary files (important: you will lose points otherwise).

Submitting your assignment Update the master repository to include the assignment (execute add, commit in that folder). Go to the assignment in Blackboard and add a statement in the place for the assignment solution saying that the solution has been uploaded to the svn. If this is not done, I will not know that you have completed the assignment and it will not be graded.

Getting a clean directory tree from subversion Data in the local repository includes files specific to subversion (.svn directories and other files) that are generally not included when passing the data on to others. To make a copy of some part of the local repository data without the subversion specific files use the subversion command export Select the folder in your local repository to be exported. Right click TortoiseSVN->Export. Choose the folder you what to export it to and click OK.

Export example: creating assignment Let's say you've developed assignment1 in development/assgn1 as shown on the right. Also assume that you can run Unity in assgn1 and it works as you want it to. To set up the folder assignment1 to hand in export assgn1 to assignment1. Select assgn1, right click and select TortioseSVN->Export Select assignment 1 and click se;ect folder. See the images produced on the on the next slide

Export example: creating assignment

Export example: creating assignment At this point you have copied the files in assgn1 into assignment1 without the subversion specific files that can confuse subversion. Remove any files copied but unnecessary files from assignment1. Check that all required files were copied by running Unity in assignment1. Note however the lack of a check mark on the files in assignment1. This means that they have not been added to the local repository. Run svn add and commit to add the files locally and to the master repository Go to the assignment page in Blackboard and state that assignment1 in the master repository