Version Control with Mercurial and SSH
|
|
|
- Milton Raymond Lawrence
- 10 years ago
- Views:
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 <[email protected]> Upon commit, an editor opens: v [...] HG: user: Lasse Kliemann <[email protected]> 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 <[email protected]> date: Sun Oct 03 18:32: summary: na changeset: 0:19092ca73642 user: Lasse Kliemann <[email protected]> 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 [email protected] < /.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 <[email protected]> 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 <[email protected]> rw",no[...] On account A, the appropriate username should be set in /.hgrc : [ui] username = Lasse Kliemann <[email protected]> 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 ssh://[email protected]/my-proj 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
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 [email protected] Outline Why use version control? Simple example of revisioning Mercurial
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
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
Introduction to Git. Markus Kötter [email protected]. Notes. Leinelab Workshop July 28, 2015
Introduction to Git Markus Kötter [email protected] Leinelab Workshop July 28, 2015 Motivation - Why use version control? Versions in file names: does this look familiar? $ ls file file.2 file.
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
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
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
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?
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
An Introduction to Mercurial Version Control Software
An Introduction to Mercurial Version Control Software LANS Weekly Seminar October 17, 2006 Satish Balay [email protected] Outline Why use version control? Simple example of revisioning Mercurial introduction
Version Control Systems
Version Control Systems ESA 2015/2016 Adam Belloum [email protected] Material Prepared by Eelco Schatborn Today IntroducGon to Version Control Systems Centralized Version Control Systems RCS CVS SVN
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
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
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:
Git Basics. Christopher Simpkins [email protected]. Chris Simpkins (Georgia Tech) CS 2340 Objects and Design CS 1331 1 / 22
Git Basics Christopher Simpkins [email protected] 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
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
Introduction to the Git Version Control System
Introduction to the Sebastian Rockel [email protected] University of Hamburg Faculty of Mathematics, Informatics and Natural Sciences Department of Informatics Technical Aspects of Multimodal
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
Version Control with Git. Linux Users Group UT Arlington. Rohit Rawat [email protected]
Version Control with Git Linux Users Group UT Arlington Rohit Rawat [email protected] Need for Version Control Better than manually storing backups of older versions Easier to keep everyone updated
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
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
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
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,
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.
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
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
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
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
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
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
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
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
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,
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
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
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
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,
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
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.
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
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
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
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
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
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
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
Version Control with Git
Version Control with Git Ben Wasserman ([email protected]) 15-441 Computer Networks Recitation 3 1/28 What is version control? Revisit previous code versions Backup projects Work with others Find where
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
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
[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.
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.
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........................................
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
Git. A Distributed Version Control System. Carlos García Campos [email protected]
Git A Distributed Version Control System Carlos García Campos [email protected] Carlos García Campos [email protected] - Git 1 A couple of Quotes For the first 10 years of kernel maintenance, we literally
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
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
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.
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
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.
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
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
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
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
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}, [email protected] 2013-05-22 Outline 1 Intro 2 etckeeper 3 bup 4 ikiwiki 5 git-annex 6 vcsh 7 mr 8 Zsh
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
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
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
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.
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...
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
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
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
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)
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,
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
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.................................................
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
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.
Secure Linux Administration Conference 2013. Bernd Strößenreuther
Puppet getting started Best practices on how to turn Your environment into a Puppet managed environment Secure Linux Administration Conference 2013 Berlin 2013 06 06 Bernd Strößenreuther mailto:[email protected]
Version Control Tools
Version Control Tools Source Code Control Venkat N Gudivada Marshall University 13 July 2010 Venkat N Gudivada Version Control Tools 1/73 Outline 1 References and Resources 2 3 4 Venkat N Gudivada Version
Version Control. Version Control
Version Control CS440 Introduction to Software Engineering 2013, 2015 John Bell Based on slides prepared by Jason Leigh for CS 340 University of Illinois at Chicago Version Control Incredibly important
Working Copy 1.4 users manual
Working Copy 1.4 users manual Introduction 3 Cloning repositories 3 Accessing files 3 Committing changes 4 Staying up-to-date 4 Remotes 5 Clone catalog 5 SSH keys 6 Viewing and editing files 6 File changes
Source code management systems
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
Putting It All Together. Vagrant Drush Version Control
Putting It All Together Vagrant Drush Version Control Vagrant Most Drupal developers now work on OSX. The Vagarant provisioning scripts may not work on Windows without subtle changes. If supplied, read
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
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
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
Modulo II Software Configuration Management - SCM
Modulo II Software Configuration Management - SCM Professor Ismael H F Santos [email protected] April 05 Prof. Ismael H. F. Santos - [email protected] 1 Bibliografia Introduction to Apache
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
Git, GitHub & Web Hosting Workshop
Git, GitHub & Web Hosting Workshop WTM Hamburg Git, GitHub & Web Hosting Documentation During our Workshops we re going to develop parts of our WTM Hamburg Website together. At this point, we ll continue
SSH Key Exchange: Windows client to Unix/Linux server
SSH Key Exchange: Windows client to Unix/Linux server Table of contents 1 Audience... 2 2 Purpose...2 3 Prerequisites...2 4 SSH Key exchange: Windows client & Unix/Linux Server...3 4.1 Outline of steps
