Subversion in the Sur lab A tool for organizing and sharing analysis code.

Slides:



Advertisements
Similar presentations
Week 2 DUE This Week: Safety Form and Model Release DUE Next Week: Project Timelines and Website Notebooks Lab Access SharePoint Usage Subversion Software.
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.
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).
Let Use SVN(Subversion) Interaction Lab. Hyo-Geun Ahn
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.
Git/Unix Lab March Version Control ●Keep track of changes to a project ●Serves as a backup ●Revert to previous version ●Work on the same files concurrently.
Using subversion COMP 2400 Prof. Chris GauthierDickey.
Version Control Systems Phil Pratt-Szeliga Fall 2010.
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment Chapter 12: Managing and Implementing Backups and Disaster Recovery.
Microsoft Visual Source Safe 6.01 Microsoft Visual Source Safe (MVSS) Presented By: Rachel Espinoza.
Source Control Repositories for Enabling Team Working Svetlin Nakov Telerik Corporation
SubVersioN – the new Central Service at DESY by Marian Gawron.
workflow. SubVersion Version control Quality control: “Something adheres to some criteria” Without a properly defined something there.
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.
Git for Version Control These slides are heavily based on slides created by Ruth Anderson for CSE 390a. Thanks, Ruth! images taken from
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.
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.
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment, Enhanced Chapter 12: Managing and Implementing Backups and Disaster Recovery.
Version Control with Subversion Quick Reference of Subversion.
THE BIG PICTURE. How does JavaScript interact with the browser?
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.
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.
Subversion (SVN) Tutorial Source:
SWEN 302: AGILE METHODS Roma Klapaukh & Alex Potanin.
Object-Oriented Analysis & Design Subversion. Contents  Configuration management  The repository  Versioning  Tags  Branches  Subversion 2.
Version Control.
Using Subversion and TortoiseSVN for Windows by Galen Wilkerson Gund Institute for Ecological Economics University of Vermont
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.
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.
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.
Refactoring and Synchronization with the StarTeam Plug-in for Eclipse  Jim Wogulis  Principal Architect, Borland Software Corporation.
11 Version Control Systems Mauro Jaskelioff (originally by Gail Hopkins)
Prepared by: Steve Teo Contributors: Tong Huu Khiem.
WinCvs. WinCVS WinCvs is a window based version control system. Use WinCvs when  You want to save every version of your file you have ever created. CVS.
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.
P51UST: Unix and SoftwareTools Unix and Software Tools (P51UST) Version Control Systems Ruibin Bai (Room AB326) Division of Computer Science The University.
Sabriansyah R.A Version Control. The Repository Subversion adalah sistem tersentralisasi untuk informasi sharing Repository adalah pusat penyimpanan data.
Version Control System
Part 4: FCM and the UM University of Reading, December 2015.
Version Control and SVN ECE 297. Why Do We Need Version Control?
Lecture 7 Conditional Scripting and Importing/Exporting.
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.
© CGI Group Inc. User Guide Subversion client TortoiseSVN.
DIGITAL REPOSITORIES CGDD Job Description… Senior Tools Programmer – pulled August 4 th, 2011 from Gamasutra.
Problem Solving With C++ SVN ( Version Control ) April 2016.
Source Control Dr. Scott Schaefer. Version Control Systems Allow for maintenance and archiving of multiple versions of code / other files Designed for.
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.
Version Control with Subversion
Source Control Dr. Scott Schaefer.
Discussion 11 Final Project / Git.
Source Code Management
slides borrowed and adapted from Alex Mariakis and CSE 390a
Compilers, Make and SubVersion
User Guide Subversion client TortoiseSVN
Systems Analysis and Design I
Presentation transcript:

Subversion in the Sur lab A tool for organizing and sharing analysis code

Why Subversion kicks ass The pre-Subversion code sharing nightmare scenario. Too scary for words. Alternative 1: everyone writes their own code, from scratch. – This is fine, but there are some things that everyone will need to do, like load their data into matlab and select regions of interest, that are so common that there’s no need for each person to “re-invent the wheel”. Alternative 2: version control. – Store code in a common repository. This allows all the code to be available in one place, in the most up-to-date form, and easily available to anyone who wants it (if they’re on the Surlab network). – It is like an ordinary file server, except that it remembers every change ever made to the files and directories (that have been ‘committed’) so you can easily recover older versions if needed. – This also allows any improvements that anyone makes to the code to be available to everyone, chaos-free, with minimal time and effort.

Getting the shared analysis code onto your computer Detailed directions are available on the wiki, at More info on TortoiseSVN (the version of SVN that works as an add-in to Windows Explorer) can be found at Step 1: Install Subversion on your computer. Step 2: ‘Check out’ the code (get your own private copy of it on your computer). You can stop there if you want, and modify the code for your own personal use as you would have if someone ed you the code. Or, if you want to get bug fixes, new functionality, etc., that others have added, you can periodically run an ‘update.’ Furthermore, if you want to ROCK, you can contribute too! (more on that in a minute…) All of these processes are ridiculously simple and user-friendly using TortoiseSVN (just right-click and select ‘check out’ or ‘update’ or ‘commit’ in Windows Explorer, or on a Mac, in Finder).

Using the shared 2-photon analysis code Updated instructions will always be available in the file READ ME.txt in the repository, in the same directory as the code. To load 2-photon data into Matlab: 1) load_raw_data - loads across-file average data for the purpose of selecting ROIs 2) cell_selector - allows user to select ROIs and name cell groups interactively, saves everything in a.mat file 3) reload_raw_data - loads all data from all raw files, only in selected ROIs, appends that info to the previously created.mat file If you want to get tuning curves for your selected cells, you can use *4) plot_epis_tuning (for episodic data) - models raw time series with an amplitude-modulated sin wave - key module: sin_model or plot_ori_tuning (for periodic data) - models raw time series with a periodic AR model (developed by Wasim Malik & Emery Brown) - key module: get_ori_tuning If you want to compare the resulting tuning curves across your cell groups (make summary plots and run stats), you can use *5) analyze_epis_tuning (for episodic data) or analyze_ori_tuning (for periodic data) - key modules for both: plot_ave_tuning_curve, compare_params

Examples of share-worthy improvements Adding a new useful function Extracting a useful ‘module’ from a long function or script and making it into its own function, in its own m-file, so that it can easily be used elsewhere – Remember to delete that module from the old (outer) m-file, ‘add’ the new m-file containing the extracted function to subversion, and ‘commit’ both Adding outputs – Add them to end so the function will work exactly the same as it did before if the new outputs are not requested. Adding inputs for values that were previously hard-coded – Be sure it defaults to the original hard-coded value if the input is missing or empty: Making the function compatible with other platforms – E.g. directory path names contain \ on a PC but / on a mac. To write directory path names compatible with both, one could make a function slash.m that outputs the string \ if it’s running on a PC or / if it’s running on a mac, and replace all the hard-coded slashes in the path with the word slash : if ~exist('plot_style', 'var') || isempty(plot_style), plot_style = 'cartesian'; end function str_out = slash if ispc, str_out = '\'; else str_out = '/'; end

Before committing code to the repository Run an ‘SVN update’ before editing your copy to make sure you have the most recent version (if you try to commit but you don’t have the most recent version, SVN will tell you, and show you any ‘conflicts’ that you need to resolve, before you commit). Make sure your changes to existing functions are backwards-compatible (e.g. by following the guidelines on the last slide). If you have any questions or concerns, see me.