SWEN 302: AGILE METHODS Roma Klapaukh & Alex Potanin.

Slides:



Advertisements
Similar presentations
Introduction To GIT Rob Di Marco Philly Linux Users Group July 14, 2008.
Advertisements

Simple Git Steve Pieper. Topics Git considerations and Slicer Git as if it were svn Git the way it is meant to be.
Git Branching What is a branch?. Review: Distributed - Snapshots Files are stored by SHA-1 hash rather than filename Stored in git database in compressed.
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.
1 CSE 390 “Lecture 11” Version control with Git slides created by Ruth Anderson, images from
Introduction to Git and Github Joshua imtraum.com.
BIT 285: ( Web) Application Programming Lecture 07 : Tuesday, January 27, 2015 Git.
Git for Version Control These slides are heavily based on slides created by Ruth Anderson for CSE 390a. Thanks, Ruth! images taken from
Version Control with Subversion. What is Version Control Good For? Maintaining project/file history - so you don’t have to worry about it Managing collaboration.
Git. What’s Git? A British swear A Distributed Version Control System Developed in 2005 by Linus Torvalds for use on the Linux Kernel Git Logo by Jason.
Introduction to Version Control with SVN & Git CSC/ECE 517, Fall 2012 Titus Barik & Ed Gehringer, with help from Gaurav.
Subversion. What is Subversion? A Version Control System A successor to CVS and SourceSafe Essentially gives you a tracked, shared file system.
علیرضا فراهانی استاد درس: جعفری نژاد مهر Version Control ▪Version control is a system that records changes to a file or set of files over time so.
Version Control with Subversion Quick Reference of Subversion.
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.
Subversion (SVN) Tutorial for CS421 Dan Fleck Spring 2010.
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.
Drexel University Software Engineering Research Group Git for SE101 1.
…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.
Copyright © 2015 – Curt Hill Version Control Systems Why use? What systems? What functions?
Progress with migration to SVN Part3: How to work with g4svn and geant4tags tools. Geant4.
Team 708 – Hardwired Fusion Created by Nam Tran 2014.
Git Fundamentals Rochelle Terman 13 January 2014.
Refactoring and Synchronization with the StarTeam Plug-in for Eclipse  Jim Wogulis  Principal Architect, Borland Software Corporation.
GIT.
Intro to Git presented by Brian K. Vagnini Hosted by.
Version Control and SVN ECE 297. Why Do We Need Version Control?
Introduction to Git Yonglei Tao GVSU. Version Control Systems  Also known as Source Code Management systems  Increase your productivity by allowing.
Subversion (SVN) Tutorial for CS421 Dan Fleck Spring 2010.
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.
BIT 285: ( Web) Application Programming Lecture 07 : Tuesday, January 27, 2015 Git.
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
Version Control Systems
CS5220 Advanced Topics in Web Programming Version Control with Git
M.Sc. Juan Carlos Olivares Rojas
Source Control Systems
11 Version control (part 2)
CReSIS Git Tutorial.
SVN intro (review).
LECTURE 2: Software Configuration Management
Git Practice walkthrough.
File Version Control System
Software Engineering for Data Scientists
Version Control with Git and GitHub
Sign in on the attendance sheet!
Version Control Systems
Distributed Version Control with git
Akshay Narayan git up to speed with RCS Akshay Narayan
LECTURE 3: Software Configuration Management
Version control with Git Part II
Git CS Fall 2018.
Version Control System - Git
Version control with Git
Git started with git: 2018 edition
Version Control with Git and GitHub
Git Fundamentals.
Git Introduction.
Git GitHub.
Introduction to The Git Version Control System
Presentation transcript:

SWEN 302: AGILE METHODS Roma Klapaukh & Alex Potanin

LAB SUMMARIES These are due starting this week Should be ~1/2 a page What you did this week What did you try different this week What went well What went poorly

CONTINUOUS IMPROVEMENT Improve, improve, improve Give things a chance

DEFINITION OF READY This is a list of requirements for a user story for it to be added to ‘todo’ Generally a short list like Has acceptance tests Has been sized Reviewed by product owner

GIT Git is a distributed version control system It remembers what you (and who) changed and when That doesn’t make it safe. You can rewrite history Complete (ish) copies are stored locally and remotely

GIT ARCHITECTURE Remote Local Staging Workspace Staging Workspace Staging Workspace Add Commit Push / Pull

IGNORE You don’t actually want to store all the files in the directory you are working on in your git repository Temporary files: *~,.#*#, *.swp, ~$*, etc Editor specific files:.project Compiled binaries (you might want to keep some) Data files Use a.gitignore file *.swo – ignore files with.swo extensions bin/ - ignore the bin directory and everything in it Blob.csv – ignore the Blob.csv file

COMMITS Your history (from git’s point of view) is broken up into commits Commits should be as small as possible Should be a single change / bug fix / thing Commits are tagged by the author / committer (Github relies on matching addresses) Each commit is made up of: changes made to one or more files an author Commit message Gpg signature [optional]

GIT ADD In order to make a commit you assemble the relevant diffs in the staging area git add filename ~ adds a specific file to staging git add. ~ adds every file in this directory which has changed (or is new) and is not ignored to staging (won’t catch deleted files) git add –A ~ adds all files which have been changed, created, or deleted (and not ignored) to staging git add –p ~ interactive prompt which asks you about adding changes chunk by chunk (can get more than one change from a single file)

GIT COMMIT Commit bundles everything from staging into a single commit and moves it into the local repository Staging is emptied after the commit Commits are given a message – What this commit did git commit –m “commit message” If you don’t do ‘–m’ it will bring up an editor for you to type in your message (normally vim is the default – can change this)

GIT STATUS git status Shows what files have been modified, renamed, deleted, or not yet added to version control

GIT BRANCH Branches allow for independent development that can be later recombined Change branches with git checkout branchname Create branches with git branch branchname master rainbows

COMBING BRANCHES git merge target ~ combine target branch into current branch git rebase ~ move the start along so that it looks like the branch all happened after (you can now merge easily). This rewrites history rainbows master rainbows master mergerebase

MOVING THOUGH TIME AND SPACE git reset ~ remove file from staging git reset ~ throw away commits after a given one (local ones) git checkout ~ switch branch git checkout ~ go to a given commit to look at, or create a branch from git revert ~ create a commit which undoes previous ones (history preserving)

CONFLICTS When you combine your work with others, you can get conflicts Git cannot always tell how to combine different bits of work You manually fix all the conflicts, add the conflicted files, then commit Conflicts are marked as: <<<<<<< HEAD Your current state ======= The other branch’s work >>>>>>> otherBranch

TO / FROM THE CLOUD Everything so far has been local git pull remote branch ~ pull in changes from the remote for a branch git push remote branch ~ push changes from local to the remote Must be fully up to date (pull) before you can push

COMMIT HOOKS These are local scripts that run during the commit (not only) process They live in.git/hooks (remove the.sample from the filename to enable) They can be use to automatically check code for style, linting, tests They are not copied when you clone / push / pull

GIT ATTRIBUTES Can be used to set file properties for the repository (e.g line endings) Allows the system to automatically convert line endings on checkout Allows you to mark files as binary Allows you to mark files as being in a specific language

GITHUB Github provides a number of cool features Readme.md is automatically rendered Issue tracker integrated with commit messages Project wiki

GIT TOOLS Command line Source tree Github Egit (eclipse) Sublime text git / SublimeGit