Version Control. Second level Third level Fourth level Fifth level. - Software Development Project. January 11, 2017

Similar documents
Version Control. Second level Third level Fourth level Fifth level. - Software Development Project. January 17, 2018

Version Control. Version Control

Revision control. INF5750/ Lecture 2 (Part I)

A BASIC UNDERSTANDING OF VERSION CONTROL

CSE 391 Lecture 9. Version control with Git

CS108, Stanford Handout #37. Source Control CVS

TDDC88 Lab 4 Software Configuration Management

Object Oriented Programming. Week 1 Part 2 Git and egit

Software Development I

Using Git to Manage Source RTL

Laboratorio di Programmazione. Prof. Marco Bertini

Version Control. Version Control

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

Version Control Systems

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

Lab 08. Command Line and Git

Github/Git Primer. Tyler Hague

Lab 01 How to Survive & Introduction to Git. Web Programming DataLab, CS, NTHU

Version Control for Fun and Profit

Git. Charles J. Geyer School of Statistics University of Minnesota. Stat 8054 Lecture Notes

Git for Version Control

Fundamentals of Git 1

CS314 Software Engineering Configuration Management

Tutorial 2 GitHub Tutorial

Intro to Github. Jessica Young

Common Git Commands. Git Crash Course. Teon Banek April 7, Teon Banek (TakeLab) Common Git Commands TakeLab 1 / 18

Version Control Systems (VCS)

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

Lab Exercise Git: A distributed version control system

Technology Background Development environment, Skeleton and Libraries

Django MFA Documentation

Introduction to Git and GitHub for Writers Workbook February 23, 2019 Peter Gruenbaum

Revision Control and GIT

Visualizing Git Workflows. A visual guide to 539 workflows

Creating a Patch. Created by Carl Heymann on 2010 Sep 14 1


GUIDE TO MAKE A REAL CONTRIBUTION TO AN OPEN SOURCE PROJECT 1. 1

Working with GIT. Florido Paganelli Lund University MNXB Florido Paganelli MNXB Working with git 1/47

Submitting your Work using GIT

Version Control: Gitting Started

Versioning with git. Moritz August Git/Bash/Python-Course for MPE. Moritz August Versioning with Git

Tizen/Artik IoT Practice Part 4 Open Source Development

History...: Displays a window of Gitk, a standard commit viewer for Git.

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

G E T T I N G S TA R T E D W I T H G I T

Version Control with Git ME 461 Fall 2018

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

CS 390 Software Engineering Lecture 3 Configuration Management

Git AN INTRODUCTION. Introduction to Git as a version control system: concepts, main features and practical aspects.

Version Control System GIT

Software Revision Control for MASS. Git Installation / Configuration / Use

Revision Control. Software Engineering SS 2007

Revision Control. How can 4. Slides #4 CMPT 276 Dr. B. Fraser. Local Topology Simplified. Git Basics. Revision Control:

KTH Royal Institute of Technology SEMINAR 2-29 March Simone Stefani -

Git AN INTRODUCTION. Introduction to Git as a version control system: concepts, main features and practical aspects.

GIT FOR SYSTEM ADMINS JUSTIN ELLIOTT PENN STATE UNIVERSITY

Review Version Control Concepts

Agenda. - Final Project Info. - All things Git. - Make sure to come to lab for Python next week

CSE 331 Software Design & Implementation

Software configuration management

Version Control Systems

CS 390 Software Engineering Lecture 5 More Git

GETTING TO KNOW GIT: PART II JUSTIN ELLIOTT PENN STATE UNIVERSITY

Computer Labs: Version Control with Subversion

Git. Christoph Matthies Software Engineering II WS 2018/19. Enterprise Platform and Integration Concepts group

Lab Objective. Lab Assignment. Downloads and Installation

Revision Control. An Introduction Using Git 1/15

GIT VERSION CONTROL TUTORIAL. William Wu 2014 October 7

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

Subversion Repository Layout

Version control with Git.

INET

Computer Science Design I Version Control with Git

Git Guide. Meher Krishna Patel. Created on : Octorber, 2017 Last updated : October, More documents are freely available at PythonDSP

License. Introduction to Version Control with Git. Local Version Control Systems. Why Use Version Control?

Git: Distributed Version Control

git commit --amend git rebase <base> git reflog git checkout -b Create and check out a new branch named <branch>. Drop the -b

FEEG Applied Programming 3 - Version Control and Git II

Today s presentation. Git gdb Project 1

... Fisheye Crucible Bamboo

MOOSE-Based Application Development on GitLab

CSE 390 Lecture 9. Version control and Subversion (svn)

Department of Computer Science College of Engineering Boise State University

Git AN INTRODUCTION. Introduction to Git as a version control system: concepts, main features and practical aspects.

Week 5. CS 400 Programming III

Getting the files for the first time...2. Making Changes, Commiting them and Pull Requests:...5. Update your repository from the upstream master...

API RI. Application Programming Interface Reference Implementation. Policies and Procedures Discussion

USING GIT FOR AUTOMATION AND COLLABORATION JUSTIN ELLIOTT - MATT HANSEN PENN STATE UNIVERSITY

Git Like You Mean it. Alan Ott SCaLE 16x March 8-11, 2018

b. Developing multiple versions of a software project in parallel

EECS 470 Lab 4. Version Control System. Friday, 31 st January, 2014

Task-Oriented Solutions to Over 175 Common Problems. Covers. Eclipse 3.0. Eclipse CookbookTM. Steve Holzner

SVN_Eclipse_at_home. 1. Download Eclipse. a. Go to: and select Eclipse IDE for Java Developers

Prof. Dr. Marko Boger. Prof. Dr. Christian Johner. Version Management

Git Setup Help using GitKraken (CSE 154)

About SJTUG. SJTU *nix User Group SJTU Joyful Techie User Group

TCSS 360: SOFTWARE DEVELOPMENT AND QUALITY ASSURANCE

Gitlab Setup/Usage by Yifeng Zhu modified by Vince Weaver 30 January 2019

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

Computer Labs: Version Control with Subversion

Transcription:

Version Control Click to edit Master EECS text 2311 styles - Software Development Project Second level Third level Fourth level Fifth level January 11, 2017 1

Scenario 1 You finished the assignment at home You get to York to submit and realize you did not upload it Has this ever happened to you? 2

Scenario 2 Your program works pretty well You make a lot of improvements......but you haven't gotten them to work yet You need to demo your program now 3

Scenario 3 You are working on the 2.0 version of your great app. But 2.0 does not quite compile yet and customer finds a critical bug in 1.0, which must be fixed ASAP. If you're smart, you have a copy of your 1.0 source. You make the change and release, but how do you merge your changes into your 2.0 code? If you're not so smart, you have NO source code saved. You have no way to track down the bug, and you lose face until 2.0 is ready. 4

Scenario 4 You change one part of a program - it works Your teammate changes another part - it works You put them together - it does not work What were all the changes? 5

Scenario 5 You make a number of improvements to a class Your teammate makes a number of different improvements to the same class How can you merge these changes? 6

A poor solution There are a number of tools that help you spot changes (differences) between two files, such as diff Of course, they won't help unless you kept a copy of the older version Differencing tools are useful for finding a small number of differences in a few files A better solution 7

Version control systems Keep multiple (older and newer) versions of everything (not just source code) Request comments regarding every change Display differences between versions Allow merging of changes on the same file 8

Centralized Version Control Traditional version control system Server with database Clients have a working version Examples CVS Subversion Challenges Multi-developer conflicts Client/server communication 9

Distributed Version Control Authoritative server by convention only Every working checkout is a repository Get version control even when detached Backups are trivial Examples Git Bitkeeper 10

Terminology A repository contains several branches The main branch is called the master Branches break off from the master to try something new, e.g. a new feature, code restructuring etc. Branches can be merged with other branches or into the master Tags are usually official releases that have to be supported 11

Let s work with git We need to do the following: Create a repository online Create a local repository, add a project to it, and push it to the online repository All team members get the online repository Changes pushed by one team member can now be pulled by all 12

Once per team Go to github.com Sign up for a new account Create a new repository Copy the URL to access your repository 13

Once per team Run Eclipse Create a new project called ProjectWithGit that contains a main method that prints Fun with Git Go to Window -> Preferences -> Team -> Git -> Configuration Click Add Entry, add the pair [ user.name, yourname ] Click Add Entry, add the pair [ user.email, youremail ] These should be the same as the ones used at github.com 14 Click Apply, then OK

Once per team Rightclick on ProjectWithGit, and select Team->Share Project Select Git, and hit Next Click on Create Provide a name for your local repository, and click Finish Your local repository is now setup. 15

Once per team Rightclick on ProjectWithGit and select Team -> Commit Provide name, email Add a commit message It is important that you add a message every time you commit, makes it much easier to find a version later Select all files, and click Commit Close editors, reopen, make a change to the output of your program and Commit again 16

Once per team Rightclick on ProjectWithGit, select Team -> Remote -> Push Copy the URL from github.com in the URI field Enter your github.com username and password, click Next Select master from the Source ref pull down menu Click on Add All Branches Spec Click Finish, then OK You should be able to see ProjectWithGit in github.com 17

Once per team Due to an Eclipse bug, it is now easier to delete the local repository, and re-get it from github.com along with the other team members Rightclick on ProjectWithGit in Eclipse, and select Delete. Select to delete project contents on disk, and click OK. 18

All team members Go to File -> Import -> Git -> Projects from Git Click Next, select Clone URI, click Next Copy the URL from github.com on the URI field Keep clicking Next, and finally Finish You now have a copy of the project in your local repository To push changes to the remote repository, you will need a github.com account that is added as a collaborator 19

Push Make some changes to any of the classes in the project Rightclick on any element that has changes (could be the whole project), and select Team -> Commit Add a commit message If you do not want to publish the changes yet, click Commit If they are ready to be published, click Commit and Push 20

Pull To get changes published by other team members, rightclick on the project, and select Team -> Pull 21

Lab Task Get git working for every team member This should be for code / documents / notes etc. Demonstrate that everybody can pull / push code on Monday s lab 22