Source code management systems



Similar documents
Version Control with Subversion

CSE 374 Programming Concepts & Tools. Laura Campbell (Thanks to Hal Perkins) Winter 2014 Lecture 16 Version control and svn

Revision control systems (RCS) and

Version control. HEAD is the name of the latest revision in the repository. It can be used in subversion rather than the latest revision number.

Version Control Systems

Version control with Subversion

Version Control with Svn, Git and git-svn. Kate Hedstrom ARSC, UAF

Version Control with Git. Dylan Nugent

Version Uncontrolled! : How to Manage Your Version Control

Version Control! Scenarios, Working with Git!

CISC 275: Introduction to Software Engineering. Lab 5: Introduction to Revision Control with. Charlie Greenbacker University of Delaware Fall 2011

Distributed Version Control with Mercurial and git

Continuous Integration. CSC 440: Software Engineering Slide #1

CPSC 491. Today: Source code control. Source Code (Version) Control. Exercise: g., no git, subversion, cvs, etc.)

Version Control with Git. Kate Hedstrom ARSC, UAF

Version Control with Git. Linux Users Group UT Arlington. Rohit Rawat

Modulo II Software Configuration Management - SCM

Version Control. Luka Milovanov

Introduction to Version Control

Version control tracks multiple versions. Configuration Management. Version Control. V Software Engineering Lecture 12, Spring 2008

Git Basics. Christopher Simpkins Chris Simpkins (Georgia Tech) CS 2340 Objects and Design CS / 22

Data management on HPC platforms

Managing Source Code With Subversion

CSCB07 Software Design Version Control

Version Control Tools

An Introduction to Mercurial Version Control Software

Source Control Systems

Version Control with Git

Version Control Systems: SVN and GIT. How do VCS support SW development teams?

Git. A Distributed Version Control System. Carlos García Campos carlosgc@gsyc.es

Integrated version control with Fossil SCM

Version control. with git and GitHub. Karl Broman. Biostatistics & Medical Informatics, UW Madison

How To Manage Source Code With Git

Introduction to Git. Markus Kötter Notes. Leinelab Workshop July 28, 2015

Version Control with Subversion

SVN Starter s Guide Compiled by Pearl Guterman June 2005

Distributed Version Control

Annoyances with our current source control Can it get more comfortable? Git Appendix. Git vs Subversion. Andrey Kotlarski 13.XII.

Version Control Using Subversion. Version Control Using Subversion 1 / 27

Introduction to Subversion

Version control with GIT

Introduction to Software Engineering (2+1 SWS) Winter Term 2009 / 2010 Dr. Michael Eichberg Vertretungsprofessur Software Engineering Department of

Using Subversion in Computer Science

Software Configuration Management. Slides derived from Dr. Sara Stoecklin s notes and various web sources.

Version Control using Git and Github. Joseph Rivera

Software configuration management

UNIVERSITY OF CALIFORNIA Department of Electrical Engineering and Computer Sciences Computer Science Division. P. N. Hilfinger

Version Control Tutorial using TortoiseSVN and. TortoiseGit

Advanced Computing Tools for Applied Research Chapter 4. Version control

Using SVN to Manage Source RTL

PKI, Git and SVN. Adam Young. Presented by. Senior Software Engineer, Red Hat. License Licensed under

SOFTWARE DEVELOPMENT BASICS SED

Version Control with Subversion

Version Control with Mercurial and SSH

Version Control with Subversion and Xcode

Managing Software Projects Like a Boss with Subversion and Trac

MATLAB & Git Versioning: The Very Basics

1. History 2. Structure 3. Git Comparison 4. File Storage 5. File Tracking 6. Staging 7. Queues (MQ) 8. Merge Tools 9. Interfaces

Derived from Chris Cannam's original at, an.

Using SVN to Manage Source RTL

Lab 2 : Basic File Server. Introduction

Version Control for Computational Economists: An Introduction

Version Control with Git

Miguel A. Figueroa Villanueva Xabriel J. Collazo Mojica. ICOM 5047 Capstone Miguel A. Figueroa Villanueva University of Puerto Rico Mayagüez Campus

Ingeniørh. Version Control also known as Configuration Management

Manual. CollabNet Subversion Connector to HP Quality Center. Version 1.2

How To Use An Orgsync With Anorgfusion Middleware

Version Control Script

Beginning with SubclipseSVN

Using Git for Project Management with µvision

FEEG Applied Programming 3 - Version Control and Git II

PxPlus Version Control System Using TortoiseSVN. Jane Raymond

Git Basics. Christian Hanser. Institute for Applied Information Processing and Communications Graz University of Technology. 6.

Software Delivery Integration and Source Code Management. for Suppliers

Source Code Control & Bugtracking

using version control in system administration

Introducing Xcode Source Control

Git, GitHub & Web Hosting Workshop

An Introduction to Mercurial Version Control Software

Introduction to the Git Version Control System

OBIEE Deployment & Change Management

Virtual Machine Encryption Basics

EAE-MS SCCAPI based Version Control System

Using GitHub for Rally Apps (Mac Version)

Lab Exercise Part II: Git: A distributed version control system

Transcription:

Source code management systems SVN, Git, Mercurial, Bazaar,... for managing large projects with multiple people work locally or across a network store and retrieve all versions of all directories and files in a project source code, documentation, tests, binaries,... support multiple concurrent users independent editing of files merged into single version highly recommended for COS 333 projects! save all previous versions of all files so you can back out of a bad change log changes to files so you can see who changed what and why mediate conflicting changes made by different users to maintain consistency

Basic sequence for SVN create a repository where SVN stores its copies of your files including all changes made by anyone each person checks out a copy of the files "copy - modify - merge" get files from repository to work on does not lock the repository make changes in a local copy when satisfied, check in (== commit) changes if my changes don't conflict with your changes SVN updates its copies with the revised versions automatically merges edits on different lines keeps previous copies if my changes conflict with your changes e.g., we both changed lines in the same part of file, SVN doesn't permit the checkin we have to resolve the conflict manually

Basic sequence, continued when changes are committed, SVN insists on a log message strong encouragement to record what change was made and why can get a history of changes to one or more files can run diff to see how versions of a file differ can create multiple branches of a project can tag snapshots for, e.g., releases can be used as client-server over a network, so can do distributed development repository on one machine users and their local copies can be anywhere

Getting started to put code under SVN control, do this once: svnadmin create repository [mkdir proj.dir & put files in it, or use existing directory ] svn import proj.dir file:///repository -m 'initial repository' svn checkout file:///repository working.dir create, edit files in working.directory cd working.dir ed x.c # etc. svn diff x.c svn add newfile.c update the repository from the working directory svn commit # commit all the changes for more info, read svn.help on web page, SVN book, etc.

Alternatives Git http://git-scm.com/ Bazaar http://bazaar-vcs.org Mercurial http://www.selenic.com/mercurial comparison page http://www.infoq.com/articles/dvcs-guide

Git originally written by Linus Torvalds, 2005 distributed no central server: every working directory is a complete repository has complete history and revision tracking capabilities originally for maintaining Linux kernel lots of patches many contributors very distributed dispute with BitKeeper (commercial system) dissatisfaction with CVS / SVN

Basic Git sequences (git-scm.com/documentation, gitref.org) cd project! git init!!makes.git repository git add.! git commit!!makes a snapshot of current state [modify files] git add [for new ones]! git rm [for dead ones]! git commit! git log --stat summary! git clone [url]! makes a copy of a repository

CAS: Centralized Authentication Service if your project requires users to log in with a Princeton netid don't ask users to send you their passwords at all, and especially not in the clear OIT provides a central authentication service the user visits your startup page the user is asked to authenticate via OIT's service the name and password are sent to an OIT site for validation (without passing through your code at all) if OIT authenticates the user, your code is called OIT web page about CAS: https://sp.princeton.edu/oit/sdp/cas/! Wiki%20Pages/Home.aspx! sample code: www.cs.princeton.edu/~bwk/public_html/cas!

Behind the scenes in the client libraries your web page sends user to https://fed.princeton.edu/cas/login?! service=url-where-user-will-log-in! CAS sends user back to the service url to log in with a parameter ticket=hash-of-something! your login code sends this back to https://fed.princeton.edu/cas/validate?! ticket=hash&service=url log-in result from this is either 1 line with "no" or two lines with "yes" and netid!