Version Control with Mercurial and SSH

Size: px
Start display at page:

Download "Version Control with Mercurial and SSH"

Transcription

1 Version Control with Mercurial and SSH Lasse Kliemann Vorkurs Informatik 2010

2 Wishlist While working on a project, it is nice to... be able to switch back to older versions of a file, or to compare different versions against each other. have an easy procedure for doing backups. access your files from anywhere over the network (reading and writing). work with several persons on the same set of files, without data loss and with some kind of conflict management. All this and more can be realized with... revision control systems, or version control systems if you prefer, e.g., CVS, Subversion, GNU arch, Darcs, Git, Bazaar, Mercurial; and tools for remote access, e.g., SSH. 1

3 The Naive Way The user opens a new file and starts writing. The more work he spends on the file, the more precious it becomes. This precious content is available in only one place, namely in the file on the disk (and during editing also in the RAM of the machine). Think of... the user deleting the file accidentally the user making an erroneous change to the file another user deleting the file (accidentally or maliciously) a malicious program (e.g., a virus) deleting the file the hard disk malfunctioning (can happen at any time!) 2

4 But I Have a Backup! Backups are fine. However... how often do you back up your files? how comfortable or flexible is your backup procedure? how well-organized are your backup collections? On our Suns, we have /backup/$user, but you might want to have something more fine-grained in addition. Not to mention the mess when working on the same set of files... in different locations with several persons at the same time. 3

5 Collaboration Media Infrastructures that support a group of contributors in working on the same files. ubiquitous but limited possibilities can lead to excessive extra work on all parts wikis share some properties with ( classical ) version control systems mostly for simple-structured text, provide their own rendering engine user interface is web-based and brings some nice features but also some severe limitations ( classical ) version control systems integrate smoothly with other tools (e.g., text editors)... and infrastructures (e.g., file system) useful for all kinds of text files... and with limitations also binary files can be distributed some wiki-like features can be added 4

6 Initializing the Project $ mkdir proj-1 $ cd proj-1 $ hg init $ ls -l total 0 $ ls -la [...] drwxr-x--- 3 lki lki 100 Oct 3 14:47.hg Everything below proj-1 is called a repository. Everything below proj-1 but outside of.hg is called the working copy, or working copy area. Everything below.hg is called the project metadata; sometimes it is also referred to as repository. $ hg init initializes the repository; this is only required once. 5

7 The.hg Directory $ find.hg.hg.hg/requires.hg/00changelog.i.hg/store Those files should not be changed by hand..hg/hgrc may be edited and contains configuration for this repository. Global configuration is done in /.hgrc. 6

8 Adding Some Files $ pwd /home/lki/proj-1 $ vim file-1 $ vim file-2 $ cat file-1 alpha beta $ hg status gives status information. Files that shall be tracked must be registered using $ hg add file. $ hg status? file-1? file-2 $ hg add file-1 $ hg status A file-1? file-2 7

9 Commit To record the current state, do a commit $ hg commit, shortly $ hg ci First, give Mercurial a name (your name) to associate with the commit. This is done in /.hgrc or locally in.hg/hgrc : [ui] username = Lasse Kliemann Upon commit, an editor opens: v [...] HG: user: Lasse Kliemann HG: branch default HG: added file-1 This message will be associated with the commit and appear in the logs. If there is nothing particularly interesting to say, use a dummy like na. 8

10 Examining Changes $ hg status? file-2 $ vim file-1 $ cat file-1 gamma beta $ hg status points out modified files. $ hg diff shows changes in detail. $ hg status M file-1? file-2 $ hg diff [...] -alpha +gamma beta 9

11 Log We do another commit using $ hg commit Then we examine the log: $ hg log changeset: 1:a9deef06258b tag: tip user: Lasse Kliemann date: Sun Oct 03 18:32: summary: na changeset: 0:19092ca73642 user: Lasse Kliemann date: Sun Oct 03 18:23: summary: na We use changeset and revision synonymously. More information is displayed with $ hg log -v or $ hg log -p. 10

12 $ hg log -p changeset: 1:a9deef06258b tag: tip user: Lasse Kliemann date: Sun Oct 03 18:32: summary: na [...] -alpha +gamma beta changeset: 0:19092ca73642 user: Lasse Kliemann date: Sun Oct 03 18:23: summary: na [...] +alpha +beta 11

13 Switching Back $ cat file-1 gamma beta $ hg checkout 0 1 files updated, [...] $ cat file-1 alpha beta You can bring back the working copy to any previously recorded state! Just use the checkout command. checkout is the same as update. Do not confuse this with the meaning of update in other systems, like Subversion. $ hg checkout 1 1 files updated, [...] $ cat file-1 gamma beta 12

14 Non-Linear Development You can make changes to an older revision and then commit. $ hg checkout 0 1 files updated, [...] $ vim file-1 $ hg diff [...] alpha beta +delta $ hg commit created new head $ hg heads shows all heads: $ hg heads changeset: changeset: 2:c3f86ff744d9 1:a9deef06258b 13

15 Non-Linear Development (2) We switch back to the other head, make changes, and commit. $ hg checkout 1 1 files updated, [...] $ vim file-1 $ cat file-1 epsilon gamma beta $ hg diff [...] +epsilon gamma beta $ hg commit 14

16 The Graph of Revisions (1) The situation can be displayed as a directed graph: alpha beta gamma beta epsilon gamma beta alpha beta delta 15

17 The Graph of Revisions (2) Or shortly, using revision numbers: Heads are those nodes which have no outgoing edge, here 2 and 3. $ hg glog can in fact display such graphs on the terminal! They grow into the sky then, not from left to right. 16

18 Merging You can merge changes made in one line of development into another: $ hg checkout 3 $ hg merge 2 0 files updated, 1 files merged, 0 files removed, [...] $ hg diff [...] epsilon gamma beta +delta $ hg commit

19 The New Graph of Revisions alpha beta gamma beta epsilon gamma beta epsilon gamma beta delta alpha beta delta 18

20 Unknown Files: Ignoring and Purging It is common and okay to have files in the working copy area that are not known to Mercurial, we also say: not tracked. Problem is, they clutter up output of hg status. Use -q switch to supress. Long-term approach is to make appropriate entries in.hgignore, see man hg for detailed information. For example to ignore all files ending in.pdf, put this in.hgignore : glob:*.pdf The Purge extension provides a command to remove all files from the working copy area that are not tracked and not ignored: $ hg purge Use $ hg purge --all to even remove ignored files. 19

21 Rename and Delete Files under control of Mercurial should not be treated with mv or rm. Instead use Mercurial commands. $ hg mv path-1 path-2 $ hg rm path $ hg cp path-1 path-2 is also useful. 20

22 Extensions Mercurial comes with a bundle of so-called extensions. More extensions are available separately, see: Extensions have to be activated first, in order to be used. To use $ hg glog, the Graphlog or Purge extensions must be activated first. Put this into your /.hgrc : [extensions] hgext.graphlog = hgext.purge = 21

23 Checking the Wishlist We have a history with many features. We made a tiny step towards a backup infrastructure: data is kept in two locations, in the repository and in the working copy. But this leaves much to be done. No network, yet. A single-person setup only, so far. 22

24 Cloning and Pushing Cloning means replicating a repository, including all history. We create a clone of our proj-1 into proj-1a : $ cd $ hg clone proj-1 proj-1a updating to branch default 1 files updated, 0 files merged, 0 files removed, [...] We can work with proj-1a just as before; it provides a fully-fledged repository and working copy area. If we say $ hg push, then everything newly committed in proj-1a integrated into proj-1. will be Mercurial knows where to push to by looking at an entry in.hg/hgrc section called [paths]. in the command can also be given a destination explicitly on the command line. The push 23

25 Wow, It s Distributed! It is important to realize that the cloned repository contains no more or less information than the original one. New changesets can flow in both directions, using push or pull. Default push and pull locations can be set in.hg/hgrc. Be careful how to refer to a particular changeset: numbers are only meaningful within one repository, with more than one use the hash, aka changeset ID. We are one step closer to a good backup infrastructure. We can have as many repositories as we like, in different locations of the file system. E.g., one could reside on a USB memory stick. And what is best: cloning, pushing, and pulling works just as great over the network. 24

26 Network: SSH The network allows us to work in different places with multiple contributors on the same project. Mercurial features a built-in server, but we won t use it. We use SSH to wrap up communication. SSH features public key authentification: You create a public/private keypair on an account A. The public key is registered on an account B. Now you can access account B from account A. Even more, it can be so configured on B s side that only certain actions are allowed from A. Such restrictions could be that only cloning, pushing, and pulling regarding specific repositories is allowed. 25

27 On Account A: Creating Your Keypair Create a public/private keypair on account A: $ ssh-keygen -t rsa -b 4096 Go with the default for all questions (but configure a passphrase if you prefer). Send the public key to the administrator of account B. The public key is in your home directory in /.ssh/id_rsa.pub. You can send it by $ mail < /.ssh/id_rsa.pub Or use a USB memory stick, put it on a website, etc. Do not give your secret key to others! The secret key is in your home directory in /.ssh/id_rsa. 26

28 On Account B: Give Permission to this Key On account B, the public key created on account A is inserted into /.ssh/authorized_keys. In the simplest case, the key is just copied there. Multiple keys are separated by newlines: ssh-rsa AAAAB3NzaC1yc2EAAAABIwAABAEApiB[...] ssh-rsa AAAAB3NzaC1yc2EAAAABIwAABAEA2gm[...] This means full access. Often this is not what you want. Use the command directive to restrict access: command=command,no-port-forwarding,no-agent-forwarding, no-x11-forwarding,no-pty ssh-rsa AAAAB3NzaC1yc[...] Any client using this key (e.g., from account A) is now restricted to execute the specified command. (Provided this is the only entry for this key.) 27

29 Which Command to Use to Allow Mercurial Access? hg-ssh is provided by Mercurial, used like this: command="hg-ssh path-1... path-n",no-port-forw[...] To give access to repositories located in the listed paths. I wrote something more flexible, called vcs-route : command="vcs-route short-id long-id mode",no[...] The client (from account A) is confined to /hg/user/short-id on account B. The real repositories can be symlinked from there. Changesets are required to have long-id as username. mode can be rw for read-write access, or ro to only allow read access. Example: command="vcs-route lki Lasse Kliemann rw",no[...] 28

30 URLs With SSH, the URLs for cloning, pushing, and pulling look like this: user corresponds to account B. host corresponds to the host (the machine) on which account B lives. repos is the name of the symbolic link in the directory /hg/user/short-id on account B. 29

31 Example On account B, in /.ssh/authorized_keys : command="vcs-route lki Lasse Kliemann rw",no[...] On account A, the appropriate username should be set in /.hgrc : [ui] username = Lasse Kliemann On account B, a repository is in, say, /hg/repos/proj-1. On account B, there is a symbolic link: /hg/user/lki/my-proj../../repos/proj-1 Account B is called, say, discopt gauss.informatik.uni-kiel.de. and lives on host On account A, the clone operation works like this then: $ hg clone 30

32 Checking the Wishlist History Backup: you can have repositories in multiple locations, protected by the SSH command mechanism. This already makes sense on the same machine (with multiple accounts). Accessing files over the network Several persons Conflict management: merge partly covered so far, more to come in the exercises. 31

33 Activate Extensions and Hooks In order for vcs-route to work as described, two extensions and hooks have to be activated in /.hgrc on account B: [extensions] requser = path/requser.py readonly = path/readonly.py [hooks] pretxnchangegroup.requser = python:requser.hook pretxnchangegroup.readonly = python:readonly.hook On our Suns, use /home/discopt/software/sp/package/host/plastictree.net/vcs/hgext for path. I provide an installation of my software there. Instead, you can also put this one line in your the /.hgrc : %include /home/discopt/.hgrc-vcs-route 32

34 More Path Adjustments In fact, you also have to extend PATH in order for the vcs-route program (and probably also parts of Mercurial) to be found: command="path=/home/discopt/command:\"$path\" vcs-route [...] More documentation is in /home/discopt/software/sp/package/host/plastictree.net/vcs/localdoc/index.html. You can download the package at for your own installations. It requires 33

35 Traps and Pitfalls If you (intend to) work closely together: NO: infrequently pulling (and merging) or pushing Do pulls and merges often. Always do it before you begin your work. Commit and push whenever some part of the work is done. A pull and merge means that you get a chance to adapt your work to the changes made by others. A commit and push means that you give others a chance to do the same regarding their work and your changes. However, it may be desirable: not to push faulty code that a revision constitutes a consistent state 34

36 Traps and Pitfalls NO: long lines Start a new line often. Use semantic line breaks. It s a good idea to start a new line roughly after every clause. It makes diffs much more usefull. It gives better chances for a merge to succeed. It also helps editing a lot if you use good line-oriented editors, e.g., Vim. Do not confuse a line break with the wrap function of your editor! 35

37 Traps and Pitfalls Careful with confidential data! Once a changeset is out in the wild, it is very difficult to have it obliterated. Depending on circumstances, it may be practically impossible. So: think before you push. Some local operations can be taken back using rollback. 36

38 Traps and Pitfalls NO: forget to hg add a new file It is OK to have files in the working copy area which are unknown to Mercurial. However, if a new file shall be committed (and pushed) it must be added: hg add file Beginners often forget this step. Later they wonder why their co-workers cannot see the file. A missing file might temporarily break things. 37

39 Traps and Pitfalls NO: file open in editor during checkout or merge Copy of the file is in editor. A checkout or merge is performed. This alters the file in the working copy on the disk. However, the copy in the editor stays the same. The file is saved from the editor to disk. The file on disk now is the former one the changes due to the checkout or merge are knocked over by this. For Mercurial, it looks like normal changes to the file were made. Later, co-workers wonder where their changes have gone. 38

40 Where to Get Help? $ hg help topic $ man hg Navigate from Experts on mailing lists are extremely friendly, cooperative, and eager to help. When I brought up the question of committer authentification once, an OpenPGP plugin was written within 48 hours. With the help of the experts, I then designed and wrote vcs-route and the associated extensions. Comprehensive treatment in by Bryan O Sullivan Presentation by him: Linus Torvalds explains distributed version control at the example of Git: 39

41

Distributed Version Control with Mercurial and git

Distributed Version Control with Mercurial and git OpenStax-CNX module: m37404 1 Distributed Version Control with Mercurial and git Hannes Hirzel This work is produced by OpenStax-CNX and licensed under the Creative Commons Attribution License 3.0 Abstract

More information

An Introduction to Mercurial Version Control Software

An Introduction to Mercurial Version Control Software An Introduction to Mercurial Version Control Software CS595, IIT [Doc Updated by H. Zhang] Oct, 2010 Satish Balay balay@mcs.anl.gov Outline Why use version control? Simple example of revisioning Mercurial

More information

Mercurial. Why version control (Single users)

Mercurial. Why version control (Single users) Mercurial Author: Hans Fangohr Date: 2008-05-21 Version: 033c85b22987 Id: talk.txt,v 033c85b22987 2008/05/21 08:42:42 fangohr Series: SESA2006 2008, last lecture Hint Adjust font-size

More information

FEEG6002 - Applied Programming 3 - Version Control and Git II

FEEG6002 - Applied Programming 3 - Version Control and Git II FEEG6002 - Applied Programming 3 - Version Control and Git II Sam Sinayoko 2015-10-16 1 / 26 Outline Learning outcomes Working with a single repository (review) Working with multiple versions of a repository

More information

Version Control with. Ben Morgan

Version Control with. Ben Morgan Version Control with Ben Morgan Developer Workflow Log what we did: Add foo support Edit Sources Add Files Compile and Test Logbook ======= 1. Initial version Logbook ======= 1. Initial version 2. Remove

More information

Introduction to Git. Markus Kötter koetter@rrzn.uni-hannover.de. Notes. Leinelab Workshop July 28, 2015

Introduction to Git. Markus Kötter koetter@rrzn.uni-hannover.de. Notes. Leinelab Workshop July 28, 2015 Introduction to Git Markus Kötter koetter@rrzn.uni-hannover.de Leinelab Workshop July 28, 2015 Motivation - Why use version control? Versions in file names: does this look familiar? $ ls file file.2 file.

More information

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. 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 Version control is a powerful tool for many kinds of work done over a period of time, including writing papers and theses as well as writing code. This session gives a introduction to a

More information

Data management on HPC platforms

Data management on HPC platforms Data management on HPC platforms Transferring data and handling code with Git scitas.epfl.ch September 10, 2015 http://bit.ly/1jkghz4 What kind of data Categorizing data to define a strategy Based on size?

More information

Introduction to Version Control

Introduction to Version Control Research Institute for Symbolic Computation Johannes Kepler University Linz, Austria Winter semester 2014 Outline General Remarks about Version Control 1 General Remarks about Version Control 2 Outline

More information

Version Control Systems

Version Control Systems Version Control Systems ESA 2015/2016 Adam Belloum a.s.z.belloum@uva.nl Material Prepared by Eelco Schatborn Today IntroducGon to Version Control Systems Centralized Version Control Systems RCS CVS SVN

More information

Version Control! Scenarios, Working with Git!

Version Control! Scenarios, Working with Git! Version Control! Scenarios, Working with Git!! Scenario 1! You finished the assignment at home! VC 2 Scenario 1b! You finished the assignment at home! You get to York to submit and realize you did not

More information

An Introduction to Mercurial Version Control Software

An Introduction to Mercurial Version Control Software An Introduction to Mercurial Version Control Software LANS Weekly Seminar October 17, 2006 Satish Balay balay@mcs.anl.gov Outline Why use version control? Simple example of revisioning Mercurial introduction

More information

Version control with GIT

Version control with GIT AGV, IIT Kharagpur September 13, 2012 Outline 1 Version control system What is version control Why version control 2 Introducing GIT What is GIT? 3 Using GIT Using GIT for AGV at IIT KGP Help and Tips

More information

MATLAB & Git Versioning: The Very Basics

MATLAB & Git Versioning: The Very Basics 1 MATLAB & Git Versioning: The Very Basics basic guide for using git (command line) in the development of MATLAB code (windows) The information for this small guide was taken from the following websites:

More information

Git Basics. Christopher Simpkins chris.simpkins@gatech.edu. Chris Simpkins (Georgia Tech) CS 2340 Objects and Design CS 1331 1 / 22

Git Basics. Christopher Simpkins chris.simpkins@gatech.edu. Chris Simpkins (Georgia Tech) CS 2340 Objects and Design CS 1331 1 / 22 Git Basics Christopher Simpkins chris.simpkins@gatech.edu Chris Simpkins (Georgia Tech) CS 2340 Objects and Design CS 1331 1 / 22 Version Control Systems Records changes to files over time Allows you to

More information

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

Version Control with Svn, Git and git-svn. Kate Hedstrom ARSC, UAF 1 Version Control with Svn, Git and git-svn Kate Hedstrom ARSC, UAF 2 Version Control Software System for managing source files For groups of people working on the same code When you need to get back last

More information

Introduction to the Git Version Control System

Introduction to the Git Version Control System Introduction to the Sebastian Rockel rockel@informatik.uni-hamburg.de University of Hamburg Faculty of Mathematics, Informatics and Natural Sciences Department of Informatics Technical Aspects of Multimodal

More information

Git - Working with Remote Repositories

Git - Working with Remote Repositories Git - Working with Remote Repositories Handout New Concepts Working with remote Git repositories including setting up remote repositories, cloning remote repositories, and keeping local repositories in-sync

More information

Version Control with Git. Linux Users Group UT Arlington. Rohit Rawat rohitrawat@gmail.com

Version Control with Git. Linux Users Group UT Arlington. Rohit Rawat rohitrawat@gmail.com Version Control with Git Linux Users Group UT Arlington Rohit Rawat rohitrawat@gmail.com Need for Version Control Better than manually storing backups of older versions Easier to keep everyone updated

More information

Version Control Systems (Part 2)

Version Control Systems (Part 2) i i Systems and Internet Infrastructure Security Institute for Networking and Security Research Department of Computer Science and Engineering Pennsylvania State University, University Park, PA Version

More information

Version Control with Git. Kate Hedstrom ARSC, UAF

Version Control with Git. Kate Hedstrom ARSC, UAF 1 Version Control with Git Kate Hedstrom ARSC, UAF Linus Torvalds 3 Version Control Software System for managing source files For groups of people working on the same code When you need to get back last

More information

Version Control with Subversion

Version Control with Subversion Version Control with Subversion Introduction Wouldn t you like to have a time machine? Software developers already have one! it is called version control Version control (aka Revision Control System or

More information

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

Lab Exercise Part II: Git: A distributed version control system Lunds tekniska högskola Datavetenskap, Nov 25, 2013 EDA260 Programvaruutveckling i grupp projekt Labb 2 (part II: Git): Labbhandledning Checked on Git versions: 1.8.1.2 Lab Exercise Part II: Git: A distributed

More information

Source Control Systems

Source Control Systems Source Control Systems SVN, Git, GitHub SoftUni Team Technical Trainers Software University http://softuni.bg Table of Contents 1. Software Configuration Management (SCM) 2. Version Control Systems: Philosophy

More information

MATLAB @ Work. MATLAB Source Control Using Git

MATLAB @ Work. MATLAB Source Control Using Git MATLAB @ Work MATLAB Source Control Using Git Richard Johnson Using source control is a key practice for professional programmers. If you have ever broken a program with a lot of editing changes, you can

More information

About the Tutorial. Audience. Prerequisites. Copyright & Disclaimer GIT

About the Tutorial. Audience. Prerequisites. Copyright & Disclaimer GIT i About the Tutorial Git is a distributed revision control and source code management system with an emphasis on speed. Git was initially designed and developed by Linus Torvalds for Linux kernel development.

More information

Source Code Management for Continuous Integration and Deployment. Version 1.0 DO NOT DISTRIBUTE

Source Code Management for Continuous Integration and Deployment. Version 1.0 DO NOT DISTRIBUTE Source Code Management for Continuous Integration and Deployment Version 1.0 Copyright 2013, 2014 Amazon Web Services, Inc. and its affiliates. All rights reserved. This work may not be reproduced or redistributed,

More information

Introducing Xcode Source Control

Introducing Xcode Source Control APPENDIX A Introducing Xcode Source Control What You ll Learn in This Appendix: u The source control features offered in Xcode u The language of source control systems u How to connect to remote Subversion

More information

Extending Remote Desktop for Large Installations. Distributed Package Installs

Extending Remote Desktop for Large Installations. Distributed Package Installs Extending Remote Desktop for Large Installations This article describes four ways Remote Desktop can be extended for large installations. The four ways are: Distributed Package Installs, List Sharing,

More information

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

1. History 2. Structure 3. Git Comparison 4. File Storage 5. File Tracking 6. Staging 7. Queues (MQ) 8. Merge Tools 9. Interfaces 1 Hg 1. History 2. Structure 3. Git Comparison 4. File Storage 5. File Tracking 6. Staging 7. Queues (MQ) 8. Merge Tools 9. Interfaces 2 Mercurial / Git History Bitmover's BitKeeper Proprietary distributed

More information

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

CSE 374 Programming Concepts & Tools. Laura Campbell (Thanks to Hal Perkins) Winter 2014 Lecture 16 Version control and svn CSE 374 Programming Concepts & Tools Laura Campbell (Thanks to Hal Perkins) Winter 2014 Lecture 16 Version control and svn Where we are Learning tools and concepts relevant to multi-file, multi-person,

More information

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

Annoyances with our current source control Can it get more comfortable? Git Appendix. Git vs Subversion. Andrey Kotlarski 13.XII. Git vs Subversion Andrey Kotlarski 13.XII.2011 Outline Annoyances with our current source control Can it get more comfortable? Git Appendix Rant Network traffic Hopefully we have good repository backup

More information

VFP Version Control with Mercurial

VFP Version Control with Mercurial This paper was originally presented at the Southwest Fox conference in Gilbert, Arizona in October, 2011. http://www.swfox.net VFP Version Control with Mercurial Rick Borup Information Technology Associates

More information

Version Control with Git. Dylan Nugent

Version Control with Git. Dylan Nugent Version Control with Git Dylan Nugent Agenda What is Version Control? (and why use it?) What is Git? (And why Git?) How Git Works (in theory) Setting up Git (surviving the CLI) The basics of Git (Just

More information

Using Git for Project Management with µvision

Using Git for Project Management with µvision MDK Version 5 Tutorial AN279, Spring 2015, V 1.0 Abstract Teamwork is the basis of many modern microcontroller development projects. Often teams are distributed all over the world and over various time

More information

Version Control for Computational Economists: An Introduction

Version Control for Computational Economists: An Introduction Version Control for Computational Economists: An Introduction Jake C. Torcasso April 3, 2014 Starting Point A collection of files on your computer Changes to files and new files over time Interested in

More information

Version Control Script

Version Control Script Version Control Script Mike Jackson, The Software Sustainability Institute Things you should do are written in bold. Suggested dialog is in normal text. Command- line excerpts and code fragments are in

More information

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

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

More information

CVS versus BitKeeper A Comparison

CVS versus BitKeeper A Comparison Chapter 11 CVS versus BitKeeper A Comparison Since the publication of the second edition of this book, a powerful new versioning system has risen called Bitkeeper, or BK/PRO, to dominate at least certain

More information

Version Control using Git and Github. Joseph Rivera

Version Control using Git and Github. Joseph Rivera Version Control using Git and Github Joseph Rivera 1 What is Version Control? Powerful development tool! Management of additions, deletions, and modifications to software/source code or more generally

More information

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

Version control. with git and GitHub. Karl Broman. Biostatistics & Medical Informatics, UW Madison Version control with git and GitHub Karl Broman Biostatistics & Medical Informatics, UW Madison kbroman.org github.com/kbroman @kwbroman Course web: kbroman.org/tools4rr Slides prepared with Sam Younkin

More information

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

CPSC 491. Today: Source code control. Source Code (Version) Control. Exercise: g., no git, subversion, cvs, etc.) Today: Source code control CPSC 491 Source Code (Version) Control Exercise: 1. Pretend like you don t have a version control system (e. g., no git, subversion, cvs, etc.) 2. How would you manage your source

More information

Version Control with Git

Version Control with Git Version Control with Git Claudius Coenen License: CC-BY-4.0 What We're Not Talking About Conceived by Linus Torvalds around 2005 Distributed Version Control vs. Central Version Control Why git is better

More information

Derived from Chris Cannam's original at, https://code.soundsoftware.ac.uk/projects/easyhg/wiki/sc2012bootcamppl an.

Derived from Chris Cannam's original at, https://code.soundsoftware.ac.uk/projects/easyhg/wiki/sc2012bootcamppl an. Version Control Key Points ========================== Mike Jackson, The Software Sustainability Institute. This work is licensed under the Creative Commons Attribution License. Copyright (c) Software Carpentry

More information

Using SVN to Manage Source RTL

Using SVN to Manage Source RTL Using SVN to Manage Source RTL CS250 Tutorial 1 (Version 092509a) September 25, 2009 Yunsup Lee In this tutorial you will gain experience using the Subversion (SVN) to manage your source RTL and code.

More information

Version Uncontrolled! : How to Manage Your Version Control

Version Uncontrolled! : How to Manage Your Version Control Version Uncontrolled! : How to Manage Your Version Control Harold Dost III, Raastech ABSTRACT Are you constantly wondering what is in your production environment? Do you have any doubts about what code

More information

Week G Versioning with svn

Week G Versioning with svn Week G Versioning with svn What is Versioning? Naïve vs. smart approaches Subversion (svn) workflow Basic svn commands http://subversion.tigris.org/ Assignments: Check in your proposals Week G Versioning

More information

Using Subversion in Computer Science

Using Subversion in Computer Science School of Computer Science 1 Using Subversion in Computer Science Last modified July 28, 2006 Starting from semester two, the School is adopting the increasingly popular SVN system for management of student

More information

CS108, Stanford Handout #33. CVS in Eclipse

CS108, Stanford Handout #33. CVS in Eclipse CS108, Stanford Handout #33 Winter, 2006-07 Nick Parlante CVS in Eclipse Source Control Any modern software project of any size uses "source control" Store all past revisions - Can see old versions, see

More information

Version Control with Git

Version Control with Git Version Control with Git Ben Wasserman (benjamin@cmu.edu) 15-441 Computer Networks Recitation 3 1/28 What is version control? Revisit previous code versions Backup projects Work with others Find where

More information

The Bazaar Version Control System. Michael Hudson, Canonical Ltd michael.hudson@canonical.com

The Bazaar Version Control System. Michael Hudson, Canonical Ltd michael.hudson@canonical.com The Bazaar Version Control System Michael Hudson, Canonical Ltd michael.hudson@canonical.com What is Bazaar? Bazaar is a Distributed Version Control System (DVCS) You probably know what a VCS is by now:

More information

Source Code Management/Version Control

Source Code Management/Version Control Date: 3 rd March 2005 Source Code Management/Version Control The Problem: In a typical software development environment, many developers will be engaged in work on one code base. If everyone was to be

More information

Using SVN to Manage Source RTL

Using SVN to Manage Source RTL Using SVN to Manage Source RTL CS250 Tutorial 1 (Version 083010a) August 30, 2010 Yunsup Lee In this tutorial you will gain experience using the Subversion (SVN) to manage your source RTL and code. You

More information

Automated Offsite Backup with rdiff-backup

Automated Offsite Backup with rdiff-backup Automated Offsite Backup with rdiff-backup Michael Greb 2003-10-21 Contents 1 Overview 2 1.1 Conventions Used........................................... 2 2 Setting up SSH 2 2.1 Generating SSH Keys........................................

More information

[PRAKTISCHE ASPEKTE DER INFORMATIK WS 13/14]

[PRAKTISCHE ASPEKTE DER INFORMATIK WS 13/14] 2013/14 Institut für Computergraphik, TU Braunschweig Pablo Bauszat [PRAKTISCHE ASPEKTE DER INFORMATIK WS 13/14] All elemental steps that will get you started for your new life as a computer science programmer.

More information

Revision control systems (RCS) and

Revision control systems (RCS) and Revision control systems (RCS) and Subversion Problem area Software projects with multiple developers need to coordinate and synchronize the source code Approaches to version control Work on same computer

More information

Beginning with SubclipseSVN

Beginning with SubclipseSVN Version 2 July 2007 Beginning with SubclipseSVN A user guide to begin using the Subclipse for source code management on the CropForge collaborative software development site. Copyright International Rice

More information

Version control systems. Lecture 2

Version control systems. Lecture 2 Version control systems Lecture 2 VCS Many people s version- control method of choice is to copy files into another directory (e.g. a @me- stamped directory). But this approach is error prone. Easy to

More information

ALERT installation setup

ALERT installation setup ALERT installation setup In order to automate the installation process of the ALERT system, the ALERT installation setup is developed. It represents the main starting point in installing the ALERT system.

More information

Enterprise Remote Control 5.6 Manual

Enterprise Remote Control 5.6 Manual Enterprise Remote Control 5.6 Manual Solutions for Network Administrators Copyright 2015, IntelliAdmin, LLC Revision 3/26/2015 http://www.intelliadmin.com Page 1 Table of Contents What is Enterprise Remote

More information

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

Git Basics. Christian Hanser. Institute for Applied Information Processing and Communications Graz University of Technology. 6. Git Basics Christian Hanser Institute for Applied Information Processing and Communications Graz University of Technology 6. March 2013 Christian Hanser 6. March 2013 Seite 1/39 Outline Learning Targets

More information

using version control in system administration

using version control in system administration LUKE KANIES using version control in system administration Luke Kanies runs Reductive Labs (http://reductivelabs.com), a startup producing OSS software for centralized, automated server administration.

More information

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

Git. A Distributed Version Control System. Carlos García Campos carlosgc@gsyc.es Git A Distributed Version Control System Carlos García Campos carlosgc@gsyc.es Carlos García Campos carlosgc@gsyc.es - Git 1 A couple of Quotes For the first 10 years of kernel maintenance, we literally

More information

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

Manual. CollabNet Subversion Connector to HP Quality Center. Version 1.2 Manual CollabNet Subversion Connector to HP Quality Center Version 1.2 A BOUT THE CONNECTOR About the Connector The CollabNet Subversion Connector to HP Quality Center enables Quality Center users to

More information

CS 103 Lab Linux and Virtual Machines

CS 103 Lab Linux and Virtual Machines 1 Introduction In this lab you will login to your Linux VM and write your first C/C++ program, compile it, and then execute it. 2 What you will learn In this lab you will learn the basic commands and navigation

More information

Integrated version control with Fossil SCM

Integrated version control with Fossil SCM Integrated version control with Fossil SCM Tech Talk 2009-12-01 Arne Bachmann Folie 1 Overview Web address www.fossil-scm.org Author Dr. D.R. Hipp - Author of License GPL v2 Motto No information shall

More information

Continuous Delivery on AWS. Version 1.0 DO NOT DISTRIBUTE

Continuous Delivery on AWS. Version 1.0 DO NOT DISTRIBUTE Continuous Version 1.0 Copyright 2013, 2014 Amazon Web Services, Inc. and its affiliates. All rights reserved. This work may not be reproduced or redistributed, in whole or in part, without prior written

More information

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

Miguel A. Figueroa Villanueva Xabriel J. Collazo Mojica. ICOM 5047 Capstone Miguel A. Figueroa Villanueva University of Puerto Rico Mayagüez Campus Document and Information Management: A Software Developer s Perspective Xabriel J. Collazo Mojica Outline Introduction Why should I (you) care? Document management CMS Wiki Aigaion Code and Document Repositories

More information

Version Control with Subversion and Xcode

Version Control with Subversion and Xcode Version Control with Subversion and Xcode Author: Mark Szymczyk Last Update: June 21, 2006 This article shows you how to place your source code files under version control using Subversion and Xcode. By

More information

WinSCP PuTTY as an alternative to F-Secure July 11, 2006

WinSCP PuTTY as an alternative to F-Secure July 11, 2006 WinSCP PuTTY as an alternative to F-Secure July 11, 2006 Brief Summary of this Document F-Secure SSH Client 5.4 Build 34 is currently the Berkeley Lab s standard SSH client. It consists of three integrated

More information

MOOSE-Based Application Development on GitLab

MOOSE-Based Application Development on GitLab MOOSE-Based Application Development on GitLab MOOSE Team Idaho National Laboratory September 9, 2014 Introduction The intended audience for this talk is developers of INL-hosted, MOOSE-based applications.

More information

GeBro-BACKUP. Die Online-Datensicherung. Manual Pro Backup Client on a NAS

GeBro-BACKUP. Die Online-Datensicherung. Manual Pro Backup Client on a NAS GeBro-BACKUP Die Online-Datensicherung. Manual Pro Backup Client on a NAS Created and tested on a QNAP TS-559 Pro Firmware 4.0.2 Intel x86 Architecture Default hardware configuration OBM v6.15.0.0 Last

More information

Intro etckeeper bup ikiwiki git-annex vcsh mr Zsh Outro. Gitify your life. web, blog, configs, data, and backups

Intro etckeeper bup ikiwiki git-annex vcsh mr Zsh Outro. Gitify your life. web, blog, configs, data, and backups web, blog, configs, data, and backups Richard Hartmann, RichiH@{freenode,OFTC,IRCnet}, richih.mailinglist@gmail.com 2013-05-22 Outline 1 Intro 2 etckeeper 3 bup 4 ikiwiki 5 git-annex 6 vcsh 7 mr 8 Zsh

More information

An Introduction to Git Version Control for SAS Programmers

An Introduction to Git Version Control for SAS Programmers ABSTRACT An Introduction to Git Version Control for SAS Programmers Stephen Philp, Pelican Programming, Redondo Beach, CA Traditionally version control has been in the domain of the enterprise: either

More information

Back Up Linux And Windows Systems With BackupPC

Back Up Linux And Windows Systems With BackupPC By Falko Timme Published: 2007-01-25 14:33 Version 1.0 Author: Falko Timme Last edited 01/19/2007 This tutorial shows how you can back up Linux and Windows systems with BackupPC.

More information

Introduc)on to Version Control with Git. Pradeep Sivakumar, PhD Sr. Computa5onal Specialist Research Compu5ng, NUIT

Introduc)on to Version Control with Git. Pradeep Sivakumar, PhD Sr. Computa5onal Specialist Research Compu5ng, NUIT Introduc)on to Version Control with Git Pradeep Sivakumar, PhD Sr. Computa5onal Specialist Research Compu5ng, NUIT Contents 1. What is Version Control? 2. Why use Version control? 3. What is Git? 4. Create

More information

OpenGeo Suite for Linux Release 3.0

OpenGeo Suite for Linux Release 3.0 OpenGeo Suite for Linux Release 3.0 OpenGeo October 02, 2012 Contents 1 Installing OpenGeo Suite on Ubuntu i 1.1 Installing OpenGeo Suite Enterprise Edition............................... ii 1.2 Upgrading.................................................

More information

RecoveryVault Express Client User Manual

RecoveryVault Express Client User Manual For Linux distributions Software version 4.1.7 Version 2.0 Disclaimer This document is compiled with the greatest possible care. However, errors might have been introduced caused by human mistakes or by

More information

Miguel A. Figueroa Villanueva Xabriel J. Collazo Mojica

Miguel A. Figueroa Villanueva Xabriel J. Collazo Mojica Version Control Systems: Subversion Xabriel J. Collazo Mojica 1 Outline Introduction Document management CMS Wiki Aigaion Code and Document Repositories Version Control Systems Centralized Distributed

More information

Content. Development Tools 2(63)

Content. Development Tools 2(63) Development Tools Content Project management and build, Maven Version control, Git Code coverage, JaCoCo Profiling, NetBeans Static Analyzer, NetBeans Continuous integration, Hudson Development Tools 2(63)

More information

Dalhousie University CSCI 2132 Software Development Winter 2015 Lab 7, March 11

Dalhousie University CSCI 2132 Software Development Winter 2015 Lab 7, March 11 Dalhousie University CSCI 2132 Software Development Winter 2015 Lab 7, March 11 In this lab, you will first learn how to use pointers to print memory addresses of variables. After that, you will learn

More information

DAVE Usage with SVN. Presentation and Tutorial v 2.0. May, 2014

DAVE Usage with SVN. Presentation and Tutorial v 2.0. May, 2014 DAVE Usage with SVN Presentation and Tutorial v 2.0 May, 2014 Required DAVE Version Required DAVE version: v 3.1.6 or higher (recommend to use the most latest version, as of Feb 28, 2014, v 3.1.10) Required

More information

Source Control Guide: Git

Source Control Guide: Git MadCap Software Source Control Guide: Git Flare 11.1 Copyright 2015 MadCap Software. All rights reserved. Information in this document is subject to change without notice. The software described in this

More information

With Wakanda Cloud, you can publish a solution you created with Wakanda on the cloud. Wakanda Cloud allows you to:

With Wakanda Cloud, you can publish a solution you created with Wakanda on the cloud. Wakanda Cloud allows you to: Wakanda Cloud With Wakanda Cloud, you can publish a solution you created with Wakanda on the cloud. Wakanda Cloud allows you to: Deploy and update your application with one click, Monitor and manage your

More information

What is Subversion? Revision Control System made to replace CVS

What is Subversion? Revision Control System made to replace CVS SubVersioN the new Central Service at DESY by Marian Gawron What is Subversion? Revision Control System made to replace CVS SVN Basics Client Options Svnserve Command line client Different GUIs for Windows,

More information

Online Backup Client User Manual Linux

Online Backup Client User Manual Linux Online Backup Client User Manual Linux 1. Product Information Product: Online Backup Client for Linux Version: 4.1.7 1.1 System Requirements Operating System Linux (RedHat, SuSE, Debian and Debian based

More information

Online Backup Linux Client User Manual

Online Backup Linux Client User Manual Online Backup Linux Client User Manual Software version 4.0.x For Linux distributions August 2011 Version 1.0 Disclaimer This document is compiled with the greatest possible care. However, errors might

More information

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

Introduction to Software Engineering (2+1 SWS) Winter Term 2009 / 2010 Dr. Michael Eichberg Vertretungsprofessur Software Engineering Department of Introduction to Software Engineering (2+1 SWS) Winter Term 2009 / 2010 Dr. Michael Eichberg Vertretungsprofessur Software Engineering Department of Computer Science Technische Universität Darmstadt Dr.

More information

SVN Starter s Guide Compiled by Pearl Guterman June 2005

SVN Starter s Guide Compiled by Pearl Guterman June 2005 SVN Starter s Guide Compiled by Pearl Guterman June 2005 SV Table of Contents 1) What is SVN?... 1 2) SVN Architecture... 2 3) Creating a Working Copy... 3 4) Basic Work Cycle... 4 5) Status Symbols...

More information

Online Backup Client User Manual

Online Backup Client User Manual For Linux distributions Software version 4.1.7 Version 2.0 Disclaimer This document is compiled with the greatest possible care. However, errors might have been introduced caused by human mistakes or by

More information

COSC345 2013 Software Engineering. Lecture 7: Version Control

COSC345 2013 Software Engineering. Lecture 7: Version Control COSC345 2013 Software Engineering Lecture 7: Version Control Some Problems Communications File system problems Version control Basic principles and use Outline When to use version control Examples SCCS

More information

Acronis Backup & Recovery 11.5 Quick Start Guide

Acronis Backup & Recovery 11.5 Quick Start Guide Acronis Backup & Recovery 11.5 Quick Start Guide Applies to the following editions: Advanced Server for Windows Virtual Edition Advanced Server SBS Edition Advanced Workstation Server for Linux Server

More information

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

UNIVERSITY OF CALIFORNIA Department of Electrical Engineering and Computer Sciences Computer Science Division. P. N. Hilfinger UNIVERSITY OF CALIFORNIA Department of Electrical Engineering and Computer Sciences Computer Science Division CS 61B Fall 2012 P. N. Hilfinger Version Control and Homework Submission 1 Introduction Your

More information

WebSpy Vantage Ultimate 2.2 Web Module Administrators Guide

WebSpy Vantage Ultimate 2.2 Web Module Administrators Guide WebSpy Vantage Ultimate 2.2 Web Module Administrators Guide This document is intended to help you get started using WebSpy Vantage Ultimate and the Web Module. For more detailed information, please see

More information

Tutorial Guide to the IS Unix Service

Tutorial Guide to the IS Unix Service Tutorial Guide to the IS Unix Service The aim of this guide is to help people to start using the facilities available on the Unix and Linux servers managed by Information Services. It refers in particular

More information

DIRECTORY PASSWORD V1.2 Quick Start Guide

DIRECTORY PASSWORD V1.2 Quick Start Guide DIRECTORY PASSWORD V1.2 Quick Start Guide Directory Password is a self-service password reset / account unlock tool that is an optional add-on for Directory Update v2.5. Directory Update must be installed

More information

Two Best Practices for Scientific Computing

Two Best Practices for Scientific Computing Two Best Practices for Scientific Computing Version Control Systems & Automated Code Testing David Love Software Interest Group University of Arizona February 18, 2013 How This Talk Happened Applied alumnus,

More information

Zero-Touch Drupal Deployment

Zero-Touch Drupal Deployment Zero-Touch Drupal Deployment Whitepaper Date 25th October 2011 Document Number MIG5-WP-D-004 Revision 01 1 Table of Contents Preamble The concept Version control Consistency breeds abstraction Automation

More information