Size: px
Start display at page:

Download ""

Transcription

1 Version Control Revolution

2 Justin Love

3 I am a Mercurial User

4 THIS should not matter

5 Manifesto We want a piece of software that: 1 Is Free of religious devotion to one VCS

6 Overview What is Amp? Why Amp? What will Amp do for me? How do I use Amp? How can I help?

7 My VCS Journey

8 College VCS

9 VSS

10 SVN

11 Interface git hg arcane clean 2007

12 Documentation git hg 2007

13 Portabillity git hg windows! 2007

14 HG

15 github: 2008

16 What Is

17 Interfaces Repositories git.git hg.hg??

18 Full Mercurial Suppport hg.hg

19 Flexible Commands Written in Ruby

20 Michael adgar Edgar Ari seydar Brown

21 Back in the day, someone pointed out that Rails is slang for cocaine. So, obviously, we needed to name it after a drug. Ari Brown

22 Ruby On Rails?

23 We looked online for nicknames for meth, and chose amp because it was short (3 letters) and wasn't blatantly drug related. Ari Brown

24 $ amp clone hg amp

25 Existing Implementation in a Dynamic Language

26 Mercurial (GPL) Amp (GPL)

27 Long story short: Amp kicks ass and you should use it. It's still growing and not bug-free. If you're on Ruby 1.9, beware of Unicode Michael Edgar

28 John Locke Amp

29

30 changeset: 661:7dbef9c17c2e user: seydar date: Sun Aug summary: updated bug 24's...

31 $ amp pull git $ amp merge

32 changeset: 662:c6fb001fb520 user: Justin Love date: Tue Aug summary: use ruby format...

33 RubyConf CFP Close

34 A funny thing happened on the way to RubyConf...

35 changeset: 661:7dbef9c17c2e user: seydar date: Sun Aug summary: updated bug 24's...

36 404

37 We're happy to let you know that your proposal, "AMP: Cross-repo version control in Ruby.", has been selected for inclusion in the program. David A. Black

38 changeset: 661:7dbef9c17c2e user: seydar date: Sun Aug summary: updated bug 24's...

39 amp-redux?

40 $ amp pull git requesting all changes adding changesets adding manifests adding file changes transaction abort! interrupted!

41 FUN FACT! Getting git to play right is much more complicated than whatever that! law is that says everything is super complicated. Ari Brown

42 amp hg

43 amp git hg

44 HG focuses on the implementation (filelogs, changelogs, indexes/indices), and we wanted to focus on changesets, repositories, and stuff like that Ari Brown

45 It's like an old car that needs to get scrapped. it got us hundreds of thousands of miles. Ari Brown

46 Manifesto We want a piece of software that: 6 We want to discover where the limits are on Ruby for use in large applications. Where is the language slow? Where is it fast? What techniques are effective?

47 plan to throw one away; you will, anyhow. Fred Brooks The Mythical Man-Month

48 Redux

49 Not backed by code

50 I'm learning a shitton about software design and engineering which will pay back Amp in spades. Michael Edgar

51 Interface Implementation

52 Modular

53 Amp Front

54 Amp Core

55 Amp-hg Amp-git

56 Why

57 git C

58 Mercurial Python

59 Bazaar Python

60 Darcs Haskell

61 Monotone C++

62 SVN C

63 SVK Perl

64 C/++ 3 Python 2 Perl 1 Haskell 1 Ruby?

65 Comparison_of_revision_control_software!-F (Find) Ruby

66 Manifesto We want a piece of software that: 5 We want to prove ruby is viable for large-scale applications, not just web frameworks. Can you think of any non-trivial actual applications written in ruby?

67 Do we really need another VCS?

68 Ruby Ruby Logo 2006, Yukihiro Matsumoto

69

70

71 Rubinius

72

73 Sinatra

74 merb

75 3

76 VSS SVN Mercurial

77 CVS SVN Git

78 There Will Be a Next Thing

79 How will help me?

80 Mercurial Repos

81

82 $ amp

83 require amp

84 git.git hg.hg??

85 git.git.hg?

86 .git hg.hg

87 n 2.git hg.hg

88 git n+m.git hg.hg??

89 MySQL Rails Active Record Postgres??

90 .git git.hg?

91 Manifesto We want a piece of software that: 2 Lets us customize how we interact with it. If we want git's commands because I used it the longest, let us use them with a mercurial repo.

92 git hg.git?

93 Mix and Match

94 railties actionmailer actionpack activemodel activerecord activeresource activesupport Rails 3

95 Redux amp-front amp-core amp-hg amp-git

96 git.git hg.hg?

97 git.git hg.hg?

98 Manifesto We want a piece of software that: 3 We want the extension we wrote for HG to work on my github project too. Because they're both DVCS, damnit.

99 git.git hg.hg? extensions?

100 How do I use

101 $ gem install amp

102 $ amp help $ amp add $ amp commit $ amp push

103 Manifesto We want a piece of software that: 4 We want to be able to directly modify the commands they give us. Git's remove command is `git rm`. It should be dead simple to make `git remove` map directly to that, and we mean less than 1 minute of thought/work.

104 ampfile.rb

105 One huge feature is open commands: the same syntax for creating a command will re-open an existing one, just like classes in Ruby. Michael Edgar

106 command :log do c c.workflow :hg c.desc "Prints the commit history." c.opt :verbose, "Verbose output", {:short => "-v"} c.opt :limit, "Limit how many revisions to show", {:short => "-l", :type => :integer, :default => -1} c.opt :template, "Which template to use while printing", {:short => "-t", :type => :string, :default => "default"} c.opt :no_output, "Doesn't print output (useful for benchmarking)" c.on_run do options, args repo = options[:repository] limit = options[:limit] limit = repo.size if limit == -1 start = repo.size - 1 stop = start - limit + 1 options.merge! :template_type => :log start.downto stop do x puts repo[x].to_templated_s(options) unless options[:no_output] end end end

107 command :log do c

108 c.workflow :hg

109 c.desc "Prints the commit history."

110 c.opt :verbose, "Verbose output", {:short => "-v"} c.opt :limit, "Limit how many revisions to show", {:short => "-l", :type => :integer, :default => -1} c.opt :template, "Which template to use while printing", {:short => "-t", :type => :string, :default => "default"} c.opt :no_output, "Doesn't print output (useful for benchmarking)"

111 Trollop

112 c.on_run do options, args repo = options[:repository] limit = options[:limit] limit = repo.size if limit == -1 start = repo.size - 1 stop = start - limit + 1 options.merge! :template_type => :log start.downto stop do x puts repo[x].to_templated_s(options) unless options[:no_output] end end

113 c.on_run do options, args repo = options[:repository] limit = options[:limit] limit = repo.size if limit == -1 start = repo.size - 1 stop = start - limit + 1 options.merge! :template_type => :log start.downto stop do x puts repo[x].to_templated_s(options) unless options[:no_output] end end

114 c.on_run do options, args repo = options[:repository] limit = options[:limit] limit = repo.size if limit == -1 start = repo.size - 1 stop = start - limit + 1 options.merge! :template_type => :log start.downto stop do x puts repo[x].to_templated_s(options) unless options[:no_output] end end

115 User Command: Billing Time

116 $ amp billing --limit

117 $ amp help billing Estimate time spent --limit, -l <i>: --rate, -r <i>: --help, -h: Limit how many revisions to show Billing Rate Show this message

118 ... archive billing bisect Create... Estimate... subdivision......

119 command :billing do c c.desc "Estimate time spent" c.opt :limit, "Limit how many revisions to show", {:short => "-l", :type => :integer} c.opt :rate, "Billing Rate", {:type => :integer} c.on_run do options, args # boilerplate repo = options[:repository] limit = options[:limit] repo.size rate = options[:rate] 1 last = repo.size - 1 first = last - limit + 1 # calculate time hours = repo.to_a[first,last].each_cons(2).map(&billingtime.method(:new)) # daily summary days = Hash.new(0) hours.each { b days[b.date] += b.billable} puts days.keys.sort.reverse.map { k "#{k} #{days[k]}"} # total bills = hours.map { b b.billable * rate} puts bills.inject { a,b a + b} end end

120 command :billing do c c.desc "Estimate time spent"

121 c.opt :limit, "Limit how many revisions to show", {:short => "-l", :type => :integer} c.opt :rate, "Billing Rate", {:type => :integer}

122 c.on_run do options, args # boilerplate repo = options[:repository] limit = options[:limit] repo.size rate = options[:rate] 1 last = repo.size - 1 first = last - limit + 1

123 # calculate time hours = repo[first..last]. each_cons(2). map(&billingtime.method(:new))

124 # daily summary days = Hash.new(0) hours.each { b days[b.date] += b.billable} puts days.keys.sort.reverse. map { k "#{k} #{days[k]}"}

125 # total bills = hours.map { b b.billable * rate} puts bills.inject { a,b a + b}

126 How can I help

127 Manifesto We want a piece of software that: 7 We want to be an example of proper documentation.

128

129 MANIFESTO

130 STYLE

131 TODO

132 Amp-front

133 Option Parsing

134 Help

135 command == class

136 Amp-core

137 Plugins

138 Generic Repository

139 Amp-hg

140 GPL

141 Amp-git

142 Multiple Backends?

143 Command line wrapper

144 Amp-grit?

145 Pure Ruby

146 Amp-git-C?

147 Review

148 $ gem install amp

149 Manifesto We want a piece of software that: 1 Is Free of religious devotion to one VCS

150 Manifesto We want a piece of software that: 2 Lets us customize how we interact with it. If we want git's commands because I used it the longest, let us use them with a mercurial repo.

151 Manifesto We want a piece of software that: 3 We want the extension we wrote for HG to work on my github project too. Because they're both DVCS, damnit.

152 Manifesto We want a piece of software that: 4 We want to be able to directly modify the commands they give us. Git's remove command is `git rm`. It should be dead simple to make `git remove` map directly to that, and we mean less than 1 minute of thought/work.

153 Manifesto We want a piece of software that: 5 We want to prove ruby is viable for large-scale applications, not just web frameworks. Can you think of any non-trivial actual applications written in ruby?

154 Manifesto We want a piece of software that: 6 We want to discover where the limits are on Ruby for use in large applications. Where is the language slow? Where is it fast? What techniques are effective?

155 Manifesto We want a piece of software that: 7 We want to be an example of proper documentation.

156 These are our goals

157 These are our tools Ruby RSpec Ruby Logo 2006, Yukihiro Matsumoto

158 Now is the time.

159

160 Justin Love

Version control CSE 403

Version control CSE 403 Version control CSE 403 Goals of a version control system Keep a history of your work Explain the purpose of each change Checkpoint specific versions (known good state) Recover specific state (fix bugs,

More information

Version control CSE 403

Version control CSE 403 Version control CSE 403 Goals of a version control system Keep a history of your work Explain the purpose of each change Checkpoint specific versions (known good state) Recover specific state (fix bugs,

More information

Distributed Version Control

Distributed Version Control Distributed Version Control David Grellscheid 2014-03-17 Workshop on Advanced Techniques for Scientific Programming and Management of Open Source Software Packages 10 21 March 2014 Version management In

More information

Version control CSE 403

Version control CSE 403 Version control CSE 403 Goals of a version control system Keep a history of your work Explain the purpose of each change Checkpoint specific versions (known good state) Recover specific state (fix bugs,

More information

Ingegneria del Software Corso di Laurea in Informatica per il Management (D)VCS. Davide Rossi Dipartimento di Informatica Università di Bologna

Ingegneria del Software Corso di Laurea in Informatica per il Management (D)VCS. Davide Rossi Dipartimento di Informatica Università di Bologna Ingegneria del Software Corso di Laurea in Informatica per il Management (D)VCS Davide Rossi Dipartimento di Informatica Università di Bologna Rationale for version control Control the revisions of artifacts

More information

Git Workbook. Self-Study Guide to Git. Lorna Mitchell. This book is for sale at

Git Workbook. Self-Study Guide to Git. Lorna Mitchell. This book is for sale at Git Workbook Self-Study Guide to Git Lorna Mitchell This book is for sale at http://leanpub.com/gitworkbook This version was published on 2018-01-15 This is a Leanpub book. Leanpub empowers authors and

More information

M E R C U R I A L (The Source Control Management)

M E R C U R I A L (The Source Control Management) M E R C U R I A L (The Source Control Management) Jamshaid Iqbal Janjua, Shahid Awan jamshaid.janjua@kics.edu.pk shahidawan@kics.edu.pk Al-Khawarizmi Institute of Computer Science University of Engineering

More information

Configuration Management

Configuration Management Configuration Management VIMIMA11 Design and integration of embedded systems Budapest University of Technology and Economics Department of Measurement and Information Systems BME-MIT 2017 Configuration

More information

CSCI 2132: Software Development. Norbert Zeh. Faculty of Computer Science Dalhousie University. Subversion (and Git) Winter 2019

CSCI 2132: Software Development. Norbert Zeh. Faculty of Computer Science Dalhousie University. Subversion (and Git) Winter 2019 CSCI 2132: Software Development Subversion (and Git) Norbert Zeh Faculty of Computer Science Dalhousie University Winter 2019 Version Control Systems A version control system allows us to Record the history

More information

How to git with proper etiquette

How to git with proper etiquette How to git with proper etiquette Let's start fixing how we use git here in crew so our GitHub looks even more awesome and you all get experience working in a professional-like git environment. How to use

More information

A Practical Introduction to Version Control Systems

A Practical Introduction to Version Control Systems A Practical Introduction to Version Control Systems A random CAKES(less) talk on a topic I hope others find useful! a.brampton@lancs.ac.uk 4th February 2009 Outline 1 What is Version Control Basic Principles

More information

Version Control with Git ME 461 Fall 2018

Version Control with Git ME 461 Fall 2018 Version Control with Git ME 461 Fall 2018 0. Contents Introduction Definitions Repository Remote Repository Local Repository Clone Commit Branch Pushing Pulling Create a Repository Clone a Repository Commit

More information

INET

INET INET Framework@GitHub Proposal: How to Collaborate on Model Development Andras Varga, Rudolf Hornig INET: Current Stand Several branches in private repositories i Several extensions various web sites Patches,

More information

CS 520: VCS and Git. Intermediate Topics Ben Kushigian

CS 520: VCS and Git. Intermediate Topics Ben Kushigian CS 520: VCS and Git Intermediate Topics Ben Kushigian https://people.cs.umass.edu/~rjust/courses/2017fall/cs520/2017_09_19.zip Our Goal Our Goal (Overture) Overview the basics of Git w/ an eye towards

More information

2/9/2013 LAB OUTLINE INTRODUCTION TO VCS WHY VERSION CONTROL SYSTEM(VCS)? II SENG 371 SOFTWARE EVOLUTION VERSION CONTROL SYSTEMS

2/9/2013 LAB OUTLINE INTRODUCTION TO VCS WHY VERSION CONTROL SYSTEM(VCS)? II SENG 371 SOFTWARE EVOLUTION VERSION CONTROL SYSTEMS SENG 371 SOFTWARE EVOLUTION LAB OUTLINE Introduction to Version Control Systems VERSION CONTROL SYSTEMS Subversion Git and Github 1 Prepared by Pratik Jain 2 INTRODUCTION TO VCS A version control system

More information

Laboratorio di Programmazione. Prof. Marco Bertini

Laboratorio di Programmazione. Prof. Marco Bertini Laboratorio di Programmazione Prof. Marco Bertini marco.bertini@unifi.it http://www.micc.unifi.it/bertini/ Code versioning: techniques and tools Software versions All software has multiple versions: Each

More information

Working in Teams CS 520 Theory and Practice of Software Engineering Fall 2018

Working in Teams CS 520 Theory and Practice of Software Engineering Fall 2018 Working in Teams CS 520 Theory and Practice of Software Engineering Fall 2018 Version Control September 18, 2018 Thursday (September 20) First in-class exercise On using git (today is a prelude with useful

More information

Ruby on Rails. SITC Workshop Series American University of Nigeria FALL 2017

Ruby on Rails. SITC Workshop Series American University of Nigeria FALL 2017 Ruby on Rails SITC Workshop Series American University of Nigeria FALL 2017 1 Evolution of Web Web 1.x Web 1.0: user interaction == server roundtrip Other than filling out form fields Every user interaction

More information

hg-review Documentation

hg-review Documentation hg-review Documentation Release pre-alpha Steve Losh Nov 16, 2017 Contents 1 Quickstart 3 2 User s Guide 5 2.1 Overview................................................. 5 2.2 Concepts.................................................

More information

Introduction to Version Control

Introduction to Version Control Research Institute for Symbolic Computation Johannes Kepler University Linz, Austria 21-Nov-2013 Outline General Remarks about Version Control 1 General Remarks about Version Control 2 Outline General

More information

The Old World. Have you ever had to collaborate on a project by

The Old World. Have you ever had to collaborate on a project by What the Git? The Old World Have you ever had to collaborate on a project by Shuttling a USB drive back and forth Using Dropbox E-mailing your document around Have you ever accidentally deleted someone

More information

Fundamentals of Git 1

Fundamentals of Git 1 Fundamentals of Git 1 Outline History of Git Distributed V.S Centralized Version Control Getting started Branching and Merging Working with remote Summary 2 A Brief History of Git Linus uses BitKeeper

More information

Using Git For Development. Shantanu Pavgi, UAB IT Research Computing

Using Git For Development. Shantanu Pavgi, UAB IT Research Computing Using Git For Development Shantanu Pavgi, pavgi@uab.edu UAB IT Research Computing Outline Version control system Git Branching and Merging Workflows Advantages Version Control System (VCS) Recording changes

More information

ChiliProject - Bug # 529: builder is not part of the bundle. Add it to Gemfile

ChiliProject - Bug # 529: builder is not part of the bundle. Add it to Gemfile ChiliProject - Bug # 529: builder is not part of the bundle. Add it to Gemfile Status: Closed Priority: Normal Author: Enno Grà per Category: Created: 2011-07-17 Assignee: Updated: 2012-06-23 Due date:

More information

Version Control May 26 talk starts at 3:10. Davide Del Vento

Version Control May 26 talk starts at 3:10. Davide Del Vento Version Control 2011 May 26 talk starts at 3:10 The speaker, PhD in Physics Consulting Services, Software Engineer NCAR - CISL http://www2.cisl.ucar.edu/uss/csg office: Mesa Lab, Room 42B phone: (303)

More information

Git GitHub & secrets

Git GitHub & secrets Git&GitHub secrets git branch -D local-branch git push origin :local-branch Much like James Cameron s Avatar, Git doesn t make any goddamn sense This talk throws a ton of stuff at you This talk throws

More information

CS 320 Introduction to Software Engineering Spring February 06, 2017

CS 320 Introduction to Software Engineering Spring February 06, 2017 CS 320 Introduction to Software Engineering Spring 2017 February 06, 2017 Recap: Software development process models Traditional models Waterfall model Iterative and incremental Prototyping Spiral model

More information

EGit in Eclipse. Distributed Verzion Control Systems

EGit in Eclipse. Distributed Verzion Control Systems EGit in Eclipse Distributed Verzion Control Systems 1 EGit in Eclipse Distributed Verzion Control Systems Distributed Verizon Control Systems 1.1 1.2 2 EGit in Eclipse Distributed Verzion Control Systems

More information

Bazaar VCS. Concepts and Workflows

Bazaar VCS. Concepts and Workflows Bazaar VCS Concepts and Workflows Paint rollers and brushes If you want to paint, you have a choice of tools, including paint rollers and brushes. If you re painting a portrait, you would use a small brush.

More information

Version Control. So#ware Quality Quality Audit and Cer2fica2on. Master in Computer Engineering. Roberto García

Version Control. So#ware Quality Quality Audit and Cer2fica2on. Master in Computer Engineering. Roberto García Version Control So#ware Quality Quality Audit and Cer2fica2on Master in Computer Engineering Roberto García (rgarcia@diei.udl.cat) Introduc2on Change- control procedures. Avoid uncontrolled changes, destabilize

More information

Using git To Manage Your System's Configuration

Using git To Manage Your System's Configuration Roberto C. Sánchez Ohio LinuxFest Saturday, October 25, 2014 Overview About the presenter Use case Alternatives for managing system configuration git-based alternatives Selecting an approach Implementing

More information

Hg Mercurial Cheat Sheet

Hg Mercurial Cheat Sheet Hg Mercurial Cheat Sheet Serge Y. Stroobandt Copyright 2013 2016, licensed under Creative Commons BY-NC-SA This page is work in progress! Much of the explanatory text still needs to be written. Nonetheless,

More information

Versioning Systems. Tolu Oguntusin(too06u) 12th November, University of Nottingham

Versioning Systems. Tolu Oguntusin(too06u) 12th November, University of Nottingham Introduction to in Software Quality. (too06u) University of Nottingham 12th November, 2008 Outline Introduction to in Software Quality. 1 Introduction to What are? How do they work? How are files stored?

More information

Having Fun with Social Coding. Sean Handley. February 25, 2010

Having Fun with Social Coding. Sean Handley. February 25, 2010 Having Fun with Social Coding February 25, 2010 What is Github? GitHub is to collaborative coding, what Facebook is to social networking 1 It serves as a web front-end to open source projects by allowing

More information

Human Version Control

Human Version Control Version Control Any large, useful software system... will undergo many changes in its lifetime multiple programmers making changes who may work on the code concurrently and independently The process of

More information

RubyConf China. Why Ruby? Yukihiro "Matz" Matsumoto. Copyright (c) 2008 Yukihiro "Matz" Matsumoto, No rights reserved

RubyConf China. Why Ruby? Yukihiro Matz Matsumoto. Copyright (c) 2008 Yukihiro Matz Matsumoto, No rights reserved RubyConf China Why Ruby? Yukihiro "Matz" Matsumoto matz@ruby-lang.org Copyright (c) 2008 Yukihiro "Matz" Matsumoto, No rights reserved thou Moore s Law The number of Transistors in LSI Doubles Every 18

More information

Version Control. Version Control. Human Version Control. Version Control Systems

Version Control. Version Control. Human Version Control. Version Control Systems Version Control Version Control Any large, useful software system... will undergo many changes in its lifetime multiple programmers making changes who may work on the code concurrently and independently

More information

Source Code Management wih git

Source Code Management wih git Source Code Management wih git Matthieu Herrb December 22 http://homepages.laas.fr/matthieu/cours/git.pdf Licence This work is licensed under a Creative Commons Attribution-ShareAlike 3. Unported License.

More information

Introduction to Ruby on Rails

Introduction to Ruby on Rails Introduction to Ruby on Rails Software Engineering II WS 2016/17 Arian Treffer arian.treffer@hpi.de Prof. Plattner, Dr. Uflacker Enterprise Platform and Integration Concepts group Introduction to Ruby

More information

Linux System Management with Puppet, Gitlab, and R10k. Scott Nolin, SSEC Technical Computing 22 June 2017

Linux System Management with Puppet, Gitlab, and R10k. Scott Nolin, SSEC Technical Computing 22 June 2017 Linux System Management with Puppet, Gitlab, and R10k Scott Nolin, SSEC Technical Computing 22 June 2017 Introduction I am here to talk about how we do Linux configuration management at the Space Science

More information

Computer Science Design I Version Control with Git

Computer Science Design I Version Control with Git Computer Science Design I Version Control with Git Department of Electrical Engineering & Computer Science Information Technology & Telecommunications Research Center The University of Kansas annguyen@ittc.ku.edu

More information

How to Create a Killer Resources Page (That's Crazy Profitable)

How to Create a Killer Resources Page (That's Crazy Profitable) How to Create a Killer Resources Page (That's Crazy Profitable) There is a single page on your website that, if used properly, can be amazingly profitable. And the best part is that a little effort goes

More information

Revision Control and GIT

Revision Control and GIT Revision Control and GIT On UD HPC Community Clusters William Totten Network & Systems Services Why use revision control You can go back in time It makes it easy to try things out which might not work

More information

Revision control. INF5750/ Lecture 2 (Part I)

Revision control. INF5750/ Lecture 2 (Part I) Revision control INF5750/9750 - Lecture 2 (Part I) Problem area Software projects with multiple developers need to coordinate and synchronize the source code Approaches to version control Work on same

More information

Large Scale Webapps Devteam Infrastructure

Large Scale Webapps Devteam Infrastructure Large Scale Webapps Devteam Infrastructure Jonathan Oxer December 5th, 2005 Open Source Developers Conference Melbourne, Australia How Big Is Big? SiteBuilder as of Dec 5th, 2005: 628,076 lines of PHP

More information

Lecture 01 - Working with Linux Servers and Git

Lecture 01 - Working with Linux Servers and Git Jan. 9, 2018 Working with Linux Servers: SSH SSH (named for Secure SHell) is a protocol commonly used for remote login. You can use it from a command line interface with the following syntax ssh username@server_url

More information

Introduction to Ruby on Rails

Introduction to Ruby on Rails Introduction to Ruby on Rails Keven Richly keven.richly@hpi.de Software Engineering II WS 2017/18 Prof. Plattner, Dr. Uflacker Enterprise Platform and Integration Concepts group Introduction to Ruby on

More information

Push up your code next generation version control with (E)Git

Push up your code next generation version control with (E)Git Push up your code next generation version control with (E)Git Dominik Schadow Senior Consultant Application Development dominik.schadow@trivadis.com Java Forum Stuttgart, 07.07.2011 Basel Bern Lausanne

More information

Git: Distributed Version Control

Git: Distributed Version Control Git: Distributed Version Control Computer Science and Engineering College of Engineering The Ohio State University Lecture 3 What Does "D" Stand For? Distributed version control Multiple people, distributed

More information

Git Workflows. Sylvain Bouveret, Grégory Mounié, Matthieu Moy

Git Workflows. Sylvain Bouveret, Grégory Mounié, Matthieu Moy s Sylvain Bouveret, Grégory Mounié, Matthieu Moy 2017 [first].[last]@imag.fr http://recherche.noiraudes.net/resources/git/git-workflow-slides.pdf 1 / 16 Goals of the presentation Global history: multiple

More information

Version control system (VCS)

Version control system (VCS) Version control system (VCS) Remember that you are required to keep a process-log-book of the whole development solutions with just one commit or with incomplete process-log-book (where it is not possible

More information

USPAS Simulation of Beam and Plasma Systems Steven M. Lund, Jean-Luc Vay, Remi Lehe, Daniel Winklehner and David L. Bruhwiler Lecture: Software Version Control Instructor: David L. Bruhwiler Contributors:

More information

Version Control Systems (Part 1)

Version Control Systems (Part 1) 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

The Myth and Reality of using Haskell in the Real World

The Myth and Reality of using Haskell in the Real World The Myth and Reality of using Haskell in the Real World Experiences from darcs Cornell University September 24, 2005 Outline Introduction to darcs What s an SCM? Ideas behind darcs Myth: Haskell code is

More information

Introduction to Ruby on Rails

Introduction to Ruby on Rails Introduction to Ruby on Rails Ralf Teusner ralf.teusner@hpi.de Software Engineering II WS 2018/19 Prof. Plattner, Dr. Uflacker Enterprise Platform and Integration Concepts group Introduction to Ruby on

More information

Ruby on Rails Welcome. Using the exercise files

Ruby on Rails Welcome. Using the exercise files Ruby on Rails Welcome Welcome to Ruby on Rails Essential Training. In this course, we're going to learn the popular open source web development framework. We will walk through each part of the framework,

More information

Darcs what, why and how. Ganesh Sittampalam London HUG, 24 th April 2013

Darcs what, why and how. Ganesh Sittampalam London HUG, 24 th April 2013 Darcs what, why and how Ganesh Sittampalam London HUG, 24 th April 2013 So what is it? A distributed version control system like git, mercurial, etc and unlike svn, cvs, etc Based on patches as first-class

More information

Lecture 6 Remotes. Sign in on the attendance sheet!

Lecture 6 Remotes. Sign in on the attendance sheet! Lecture 6 Remotes Sign in on the attendance sheet! Midterm Review Everyone did great! What We ve Learned So Far Creating and cloning repositories git init, git clone Linear commit histories and diffs git

More information

Git Branching for Agile Teams

Git Branching for Agile Teams Git Branching for Agile Teams Why use Git + agile? Git helps agile teams unleash their potential How? Developer First, let s review two pillars of agile 1 Build in narrow vertical slices Waterfall: can

More information

CPSC 491. Lecture 19 & 20: Source Code Version Control. VCS = Version Control Software SCM = Source Code Management

CPSC 491. Lecture 19 & 20: Source Code Version Control. VCS = Version Control Software SCM = Source Code Management CPSC 491 Lecture 19 & 20: Source Code Version Control VCS = Version Control Software SCM = Source Code Management Exercise: Source Code (Version) Control 1. Pretend like you don t have a version control

More information

DVCS - Under the Bonnet

DVCS - Under the Bonnet DVCS - Under the Bonnet What s going on in there? Jim Hague LAIC AG ACCU Conference 2011 Jim Hague (LAIC AG) DVCS - Under the Bonnet ACCU2011 1 / 75 Aims of the Session Look at the workings of two popular

More information

What is version control? (discuss) Who has used version control? Favorite VCS? Uses of version control (read)

What is version control? (discuss) Who has used version control? Favorite VCS? Uses of version control (read) 1 For the remainder of the class today, I want to introduce you to a topic we will spend one or two more classes discussing and that is source code control or version control. What is version control?

More information

FEEG Applied Programming 3 - Version Control and Git II

FEEG Applied Programming 3 - Version Control and Git II FEEG6002 - Applied Programming 3 - Version Control and Git II Richard Boardman, Sam Sinayoko 2016-10-19 Outline Learning outcomes Working with a single repository (review) Working with multiple versions

More information

Decentralized Version Control Systems

Decentralized Version Control Systems Decentralized Version Control Systems Matthieu Moy Verimag 2007 Matthieu Moy (Verimag) DVC 2007 < 1 / 43 > Outline 1 Motivations, Prehistory 2 History and Categories of Version Control Systems 3 Version

More information

Tools for software development:

Tools for software development: Tools for software development: Version Control System Source Control Management Repository commit An introduction push Data Processing Course, V. Lafage, IPN Orsay V. Lafage @ Data Processing Course 2019

More information

S18 Modern Version Control with Git

S18 Modern Version Control with Git 98-174 S18 Modern Version Control with Git Aaron Perley (aperley@andrew.cmu.edu) Ilan Biala (ibiala@andrew.cmu.edu) https://www.andrew.cmu.edu/course/98-174/ Why should you take this course? Version control

More information

Using git to download and update BOUT++

Using git to download and update BOUT++ ER Meeting 14th Sept 2015 1/28 Using git to download and update BOUT++ Peter Hill ER Meeting 14th Sept 2015 2/28 Outline What is git? Getting git Basic git usage Getting BOUT++ Compiling BOUT++ Running

More information

[Software Development] Development Tools. Davide Balzarotti. Eurecom Sophia Antipolis, France

[Software Development] Development Tools. Davide Balzarotti. Eurecom Sophia Antipolis, France [Software Development] Development Tools Davide Balzarotti Eurecom Sophia Antipolis, France Version Control Version (revision) control is the process of tracking and recording changes to files Most commonly

More information

SECTION 1: CODE REASONING + VERSION CONTROL

SECTION 1: CODE REASONING + VERSION CONTROL SECTION 1: CODE + OUTLINE Introductions Code Reasoning Forward Reasoning Backward Reasoning Weaker vs. Stronger statements Version control CSE 331 Spring 2018 slides borrowed and adapted from Alex Mariakis

More information

Git. A Distributed Version Control System. Carlos García Campos

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

More information

SECTION 1: CODE REASONING + VERSION CONTROL

SECTION 1: CODE REASONING + VERSION CONTROL SECTION 1: CODE + OUTLINE Introductions Code Reasoning Forward Reasoning Backward Reasoning Weaker vs. Stronger statements Version control CSE 331 Summer 2018 slides borrowed and adapted from Alex Mariakis

More information

Visualizing Git Workflows. A visual guide to 539 workflows

Visualizing Git Workflows. A visual guide to 539 workflows Visualizing Git Workflows A visual guide to 539 workflows Table of Contents Notation Collaboration Without Review or Branches Merge Conflicts Requesting Code Review Collaboration with Multiple Branches

More information

What is git? Distributed Version Control System (VCS); Created by Linus Torvalds, to help with Linux development;

What is git? Distributed Version Control System (VCS); Created by Linus Torvalds, to help with Linux development; What is git? Distributed Version Control System (VCS); Created by Linus Torvalds, to help with Linux development; Why should I use a VCS? Repositories Types of repositories: Private - only you and the

More information

How to be a git. Dominic Mitchell

How to be a git. Dominic Mitchell How to be a git Dominic Mitchell Git! It s new! Everybody s talking about it! What is it? Distributed Version Control Why Git? Fast Local Toolkit Widely used Github Toolkit lets other people build tools

More information

Scaling Rails on App Engine with JRuby and Duby

Scaling Rails on App Engine with JRuby and Duby Scaling Rails on App Engine with JRuby and Duby Run your apps on Google Servers, with access to first-class Java APIs John Woodell David Masover Ryan Brown June 9, 2010 2 Google App Engine 3 Key Features

More information

Git and GitHub. Dan Wysocki. February 12, Dan Wysocki Git and GitHub February 12, / 48

Git and GitHub. Dan Wysocki. February 12, Dan Wysocki Git and GitHub February 12, / 48 Git and GitHub Dan Wysocki February 12, 2015 Dan Wysocki Git and GitHub February 12, 2015 1 / 48 1 Version Control 2 Git 3 GitHub 4 Walkthrough Dan Wysocki Git and GitHub February 12, 2015 2 / 48 Version

More information

Version Control Systems (VCS)

Version Control Systems (VCS) Version Control Systems (VCS) Xianyi Zeng xzeng@utep.edu Department of Mathematical Sciences The University of Texas at El Paso. September 13, 2016. Version Control Systems Let s get the textbook! Online

More information

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

Intro ikiwiki etckeeper vcsh git-annex bup Zsh mr 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-01-14 Outline 1 Intro 2 ikiwiki 3 etckeeper 4 vcsh 5 git-annex 6 bup 7 Zsh 8 mr

More information

Using GitHub to Share with SparkFun a

Using GitHub to Share with SparkFun a Using GitHub to Share with SparkFun a learn.sparkfun.com tutorial Available online at: http://sfe.io/t52 Contents Introduction Gitting Started Forking a Repository Committing, Pushing and Pulling Syncing

More information

Distributed Version Control (with Git)

Distributed Version Control (with Git) Distributed Version Control (with Git) Introduction and Tutorial fhlug 24. 03. 2011 Why Distributed? No single point of failure Automatic backups Fast local operations (log, diff, checkout, ) Authenticity

More information

Software Tools Subversion

Software Tools Subversion Software Tools Subversion Part II Lecture 4 1 Today s Outline Subversion (SVN) TortoiseSVN Client SVN Tips 2 Subversion (SVN) 3 Subversion (SVN) Centralized open-source VCS; started in 2000 Developed as

More information

Git: Distributed Version Control

Git: Distributed Version Control Git: Distributed Version Control Computer Science and Engineering College of Engineering The Ohio State University Lecture 3 Demo Prep: Empty (but initialized) repo Linear development: Create, edit, rename,

More information

Installing and Using Docker Toolbox for Mac OSX and Windows

Installing and Using Docker Toolbox for Mac OSX and Windows Installing and Using Docker Toolbox for Mac OSX and Windows One of the most compelling reasons to run Docker on your local machine is the speed at which you can deploy and build lab environments. As a

More information

F17 Modern Version Control with Git. Aaron Perley https://www.andrew.cmu.edu/course/98-174/

F17 Modern Version Control with Git. Aaron Perley https://www.andrew.cmu.edu/course/98-174/ 98-174 F17 Modern Version Control with Git Aaron Perley (aperley@andrew.cmu.edu) https://www.andrew.cmu.edu/course/98-174/ Why should you take this course? Version control software is an essential part

More information

Signals Documentation

Signals Documentation Signals Documentation Release 0.1 Yeti November 22, 2015 Contents 1 Quickstart 1 2 What is Signals? 3 3 Contents 5 3.1 Get Started................................................ 5 3.2 Try the Demo Server...........................................

More information

The Cathedral and the Bazaar

The Cathedral and the Bazaar The Cathedral and the Bazaar This text (including older revisions of it) Described a set of customs among Free Software developers Those customs turned out to be a quite effective development methology

More information

Make sure to mark it private. Make sure to make it a Mercurial one and not a Git one.

Make sure to mark it private. Make sure to make it a Mercurial one and not a Git one. Go to bitbucket.org - make an account. Make sure to use your.edu email address so that you get a free unlimited account. In bitbucket, create a repository. Make sure to mark it private. Make sure to make

More information

FreeBSD and Git. Ed Maste - FreeBSD Vendor Summit 2018

FreeBSD and Git. Ed Maste - FreeBSD Vendor Summit 2018 FreeBSD and Git Ed Maste - FreeBSD Vendor Summit 2018 Purpose History and Context - ensure we re starting from the same reference Identify next steps for more effective use / integration with Git / GitHub

More information

Version Control Systems: Overview

Version Control Systems: Overview 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

SECTION 2: HW3 Setup.

SECTION 2: HW3 Setup. SECTION 2: HW3 Setup cse331-staff@cs.washington.edu slides borrowed and adapted from Alex Mariakis,CSE 390a,Justin Bare, Deric Pang, Erin Peach, Vinod Rathnam LINKS TO DETAILED SETUP AND USAGE INSTRUCTIONS

More information

DVCS or a new way to use Version Control Systems for Fre

DVCS or a new way to use Version Control Systems for Fre DVCS or a new way to use Version Control Systems for FreeBSD Ollivier ROBERT BSDCan 2006 Ottawa, Canada May, 12-13th, 2006 Agenda Brief history of VCS 1 Brief history of VCS 2 3 4

More information

Intro Git Advices. Using Git. Matthieu Moy. Matthieu Moy Git 2016 < 1 / 11 >

Intro Git Advices. Using Git. Matthieu Moy. Matthieu Moy Git 2016 < 1 / 11 > Using Git Matthieu Moy Matthieu.Moy@imag.fr 2016 Matthieu Moy (Matthieu.Moy@imag.fr) Git 2016 < 1 / 11 > Outline 1 Revision Control System 2 Git: Basic Principles 3 Advices Using Git Matthieu Moy (Matthieu.Moy@imag.fr)

More information

SECTION 1: CODE REASONING + VERSION CONTROL + ECLIPSE

SECTION 1: CODE REASONING + VERSION CONTROL + ECLIPSE SECTION 1: CODE REASONING + VERSION CONTROL + ECLIPSE cse331-staff@cs.washington.edu slides borrowed and adapted from Alex Mariakis and CSE 390a OUTLINE Introductions Code Reasoning Version control IDEs

More information

Git. all meaningful operations can be expressed in terms of the rebase command. -Linus Torvalds, 2015

Git. all meaningful operations can be expressed in terms of the rebase command. -Linus Torvalds, 2015 Git all meaningful operations can be expressed in terms of the rebase command -Linus Torvalds, 2015 a talk by alum Ross Schlaikjer for the GNU/Linux Users Group Sound familiar? add commit diff init clone

More information

Code Convention and version control help us to success in Botball

Code Convention and version control help us to success in Botball Code Convention and version control help us to success in Botball Zebu Lan USTB Robot Society Team 1 Code Convention and version control help us to success in Botball 1 Introduction Clean and well-structured

More information

Version Control. Version Control

Version Control. Version Control Version Control Prepared for CS 342 - Software Design by John Bell Based on slides prepared by Jason Leigh for CS 340 University of Illinois at Chicago Version Control Incredibly important when working

More information

GIT for companies Mark Struberg, INSO TU Vienna

GIT for companies Mark Struberg, INSO TU Vienna GIT for companies Mark Struberg, INSO TU Vienna What is an SCM SCM stands for Source Code Management Checkin: organized common access to sources History: who did commit which code at what time. This creates

More information

Programming with Haiku

Programming with Haiku Programming with Haiku Lesson 4 Written by DarkWyrm All material 2010 DarkWyrm Source Control: What is It? In my early days as a developer on the Haiku project I had troubles on occasion because I had

More information

Introduction to Git and Github Repositories

Introduction to Git and Github Repositories Introduction to Git and Github Repositories Benjamin Audren École Polytechnique Fédérale de Lausanne 29/10/2014 Benjamin Audren (EPFL) CLASS/MP MP runs 29/10/2014 1 / 16 Version Control survey Survey Who

More information