Software Engineering for Data Scientists

Slides:



Advertisements
Similar presentations
Version Control with git. Version Control Version control is a system that records changes to a file or set of files over time so that you can recall.
Advertisements

1 CSE 390 “Lecture 11” Version control with Git slides created by Ruth Anderson, images from
Git for Version Control These slides are heavily based on slides created by Ruth Anderson for CSE 390a. Thanks, Ruth! images taken from
With Mercurial and Progress.   Introduction  What is version control ?  Why use version control ?  Centralised vs. Distributed  Why Mercurial ?
Git – versioning and managing your software L. Grewe.
GIT An introduction to GIT Source Control. What is GIT (1 of 2) ▪ “Git is a free and open source distributed version control system designed to handle.
Branching. Version Control - Branching A way to write code without affecting the rest of your team Merge branches to integrate your changes.
Version control Using Git Version control, using Git1.
ITEC 370 Lecture 16 Implementation. Review Questions? Design document on F, feedback tomorrow Midterm on F Implementation –Management (MMM) –Team roles.
Drexel University Software Engineering Research Group Git for SE101 1.
Version Control Systems academy.zariba.com 1. Lecture Content 1.What is Software Configuration Management? 2.Version Control Systems (VCS) 3.Basic Git.
…using Git/Tortoise Git
Git workflow and basic commands By: Anuj Sharma. Why git? Git is a distributed revision control system with an emphasis on speed, data integrity, and.
Ernst Peter Tamminga Get started with GitHub XCESS expertise center b.v. Netherlands.
SWEN 302: AGILE METHODS Roma Klapaukh & Alex Potanin.
Information Systems and Network Engineering Laboratory II DR. KEN COSH WEEK 1.
Team 708 – Hardwired Fusion Created by Nam Tran 2014.
Git Fundamentals Rochelle Terman 13 January 2014.
Intro to Git presented by Brian K. Vagnini Hosted by.
1 Web Design Workshop DIG 4104c – Lecture 5c Git: Branch and Merge J. Michael Moshell University of Central Florida giantteddy.com.
Introduction to Git Yonglei Tao GVSU. Version Control Systems  Also known as Source Code Management systems  Increase your productivity by allowing.
It’s not just an insult from Harry Potter!. What is Git? Distributed Version Control System (DVCS) – Compared to a Centralized Version Control System.
Information Systems and Network Engineering Laboratory I DR. KEN COSH WEEK 1.
Introduction to Git - Chirag Dani. Objectives Basics of Git Understanding different “Mindset of Git” Demo - Git with Visual Studio.
Git How to 1. Why Git To resolve problems in lab exams (accidental deletions) Use existing Libraries with ease (Statistics and Computer) Prepare undergraduates.
Using Git with collaboration, code review, and code management for open source and private projects. & Using Terminal to create, and push commits to repositories.
1 Ivan Marsic Rutgers University LECTURE 2: Software Configuration Management.
Git workflows: using multiple branches for parallel development SE-2800 Dr. Mark L. Hornick 1.
GIT Version control. Version Control Sharing code via a centralized DB Also provides for Backtracking (going back to a previous version of code), Branching.
KIT – University of the State of Baden-Wuerttemberg and National Research Center of the Helmholtz Association STEINBUCH CENTRE FOR COMPUTING - SCC
CompSci 230 Software Construction
CS5220 Advanced Topics in Web Programming Version Control with Git
Information Systems and Network Engineering Laboratory II
I Don’t Git It: A beginner’s guide to git Presented by Mathew Robinson
11 Version control (part 2)
GIT AND GITHUB WORKSHOP
LECTURE 2: Software Configuration Management
Version Control.
Git Practice walkthrough.
CS4961 Software Design Laboratory I Collaboration using Git and GitHub
Keeping track of all the copies of your files
Version control, using Git
Version Control with Git and GitHub
Macaualy2 Workshop Berkeley 2017
An introduction to version control systems with Git
Distributed Version Control with git
Akshay Narayan git up to speed with RCS Akshay Narayan
An introduction to version control systems with Git
Version Control with git
LECTURE 3: Software Configuration Management
The Big Picture
An introduction to version control systems with Git
Git & Github Timothy McRoy.
Part 1: Editing and Publishing Files
Advantages Project Career Divide & Conquer Collaboration
Source Code Repository
Using Github.
Git CS Fall 2018.
Version Control System - Git
Version control with Git
Git started with git: 2018 edition
Version Control Software
Version Control with Git and GitHub
GitHub 101 Using Github and Git for Source Control
Hop Aboard the Git Train – Transitioning from TFVC
Git Introduction.
Introduction to Git and Github
Git GitHub.
Using GitHub for Papyrus Models Jessie Jewitt – OAM Technology Consulting/ ARM Inc. January 29th, 2018.
Presentation transcript:

Software Engineering for Data Scientists Version Control Part 2 David Beck1,2, Joseph Hellerstein1,3, Jake VanderPlas1,4 Jay Garlapati3 1eScience Institute 2Chemical Engineering 3Computer Science Engineering 4Astronomy University of Washington

X Agenda Review Collaborating with GitHub Branching and merging Tags Conflicts Hands on conflicts Branching and merging Tags

Review How do I... view the change history for the repository? see what files in the directory are modified from the last commit? examine the changes between modified files and the last commit? place a modified file into the staging area? move the staged files into the repository history?

Review What is... the master branch? HEAD? HEAD~3? How do I restore a previous version of a file? What verb?

Review What do the following verbs do? Push Pull Clone

Previously… Created a local repository What command was that again? Added some files, committed them Linked the repository to the remote Nice remote backup, but…

Collaborating Pair up Identify one of the pair to “own” the planets repository – you created this during our first Git class Add the other of the pair as a collaborator to the repository Both clone the planets repository

Collaborating Both make changes to mars.txt by adding a new line Status, diff, add, commit, push What happens?

Mary Alice

Collaborating To add collaborators to a repository Go to the repo Click on Settings, then collaborators

Collaborating What happens? How would this work for lots of people at once?

Collaborating in style: Branches Scenario Main development trunk of codebase Bug comes in via issue report on GitHub You need to work on the bug but don’t want to screw up main development trunk What to do?

Collaborating in style: Branches What to do? Branch! Does the name master make more sense now?

Branches: commands Making a new branch git branch <branch-name> Deleting a branch git branch –D <branch-name> Switching to a branch (or master) git checkout <branch-name> git checkout master Making a new branch and switch in one git checkout –b <branch-name>

Branches: visual After branch create After checkout

Merges But how to get our features back to master?

Merges git merge <branch-name>

Collaborating In class exercise... Same partner... Each of you will create a branch, switch to it Make changes to the branch Add, commit, push... What happened?

Collaborating In class exercise... Use GitHub to view branches Use merge to resolve conflicts Who merged? Did you both try?

Yet another solution! Use a fork!

Yet another solution! Conflict management with forks

Yet another solution! Use a fork!

Forking a repository Go to the repository page... Click fork in the top right corner

Forking a repository Go to your repository list Select the `copy` or fork of the original repository Clone your fork (not the original) Make changes Add, commit, push https://help.github.com/articles/creating-a-pull- request/

Collaborating In class exercise... Same partner... One of you will have to delete your planets repo She will fork her partner’s planets repo Make a change, add, submit, commit Submit a pull request Partner accepts Look at changes on GitHub

Collaborating Workflow differences? Collaboration Branches Fork / pull request