I don’t git it! Source control management deep dive with tfvc and git

Slides:



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

Grant Holliday Senior Service Engineer Microsoft.
Patterns & practices Symposium 2013 Introducing Git version control into your team Mark
@martinwoodward
1 CSE 390 “Lecture 11” Version control with Git slides created by Ruth Anderson, images from
Git: Part 1 Overview & Object Model These slides were largely cut-and-pasted from tutorial/, with some additions.
CIS 191: Linux and Unix Class 6 March 18, 2015 What’s Git All About, Anyway?
علیرضا فراهانی استاد درس: جعفری نژاد مهر Version Control ▪Version control is a system that records changes to a file or set of files over time so.
Msdevcon.ru#msdevcon. ОПЫТ ИСПОЛЬЗОВАНИЯ GIT КОМАНДОЙ РАЗРАБОТКИ MSN Евгений Чигиринский Microsoft Corp.
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.
1 Introductory Notes on the Git Source Control Management Ric Holt, 8 Oct 2009.
Source Code Control CSE 3902 Matt Boggus. Source code control options for CSE 3902 Must use source code control that is integrated with Visual Studio.
Version control Using Git Version control, using Git1.
Source Control Primer Patrick Cozzi University of Pennsylvania CIS Spring 2012.
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.
SWEN 302: AGILE METHODS Roma Klapaukh & Alex Potanin.
Sofia Event Center May 2014 Martin Kulov Git For TFS Developers.
GIT.
Intro to Git presented by Brian K. Vagnini Hosted by.
CIS 191: Linux and Unix Class 7 October 21, 2015 What’s Git All About, Anyway?
@mariorod1 source control models.
Introduction to Git Yonglei Tao GVSU. Version Control Systems  Also known as Source Code Management systems  Increase your productivity by allowing.
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.
Jake Ginnivan Git for TFS Version Control developers DEV32 4.
1 Ivan Marsic Rutgers University LECTURE 2: Software Configuration Management.
Declarative Configuration Management with Azure Automation DSC and ARM Nathan Lasnoski Vice President of blog.concurrency.com Concurrency.
BIT 285: ( Web) Application Programming Lecture 07 : Tuesday, January 27, 2015 Git.
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
DevOps for the IT Pro with Azure and Visual Studio Team Services
Source Code Control For CSE 3902 By: Matt Boggus.
CS5220 Advanced Topics in Web Programming Version Control with Git
I Don’t Git It: A beginner’s guide to git Presented by Mathew Robinson
Version Control Systems
11 Version control (part 2)
LECTURE 2: Software Configuration Management
Git Practice walkthrough.
Version control, using Git
Git for Visual Studio Developers MARTIN KULOV, ASE
Learning GIT CodicePlastico.com.
CS5220 Advanced Topics in Web Programming Version Control with Git
Version Control with Git and GitHub
Introduction to Team Foundation Server 2010
Git it Done with Team Foundation Server
Distributed Version Control with git
Akshay Narayan git up to speed with RCS Akshay Narayan
Source Code Management
LECTURE 3: Software Configuration Management
The Big Picture
11/20/2018 8:49 PM Git at Scale Edward Thomson @ethomson
TechEd /21/2018 3:13 PM © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered.
Git CS Fall 2018.
Version Control System - Git
Paul S Waters Getting Git.
GitHub and Git.
Patrick Cozzi University of Pennsylvania CIS Fall 2012
Version Control with Git and GitHub
Git Fundamentals.
Hop Aboard the Git Train – Transitioning from TFVC
Git Introduction.
Introduction to Git and Github
Git GitHub.
Keeping your SQL Code safe
How l learned to work with others instead of working around them.
Introduction To GitHub
Introduction To GitHub
Presentation transcript:

I don’t git it! Source control management deep dive with tfvc and git Christopher Mank Chief Technologist White Ficus Nathan Lasnoski Chief Technology Officer Concurrency

Christopher Mank Nathan Lasnoski @cmank7 @nlasnoski Microsoft MVP 12+ Years IT 20+ Years IT Swimming Biking, skiing

Source control management

Source control providers

TFVC Team Foundation Version Control (TFVC) “TFS” brand of source control Centralized version control Historical data stored on the server Like checking a book out at the library Server and Local Workspaces Path-based branches

TFVC architecture

TFVC branching

TFVC Demo

git Distributed Code Management Each developer has a copy of the entire codebase with history Because each developer has the codebase, they can work offline Remote locations are used for merge/rebase and deployment

Git

5 Stages of Git

HEAD (big) The current branch. In more detail: Your working tree is normally derived from the state of the tree referred to by HEAD. HEAD is a reference to one of the heads in your repository, except when using a detached HEAD, in which case it directly references an arbitrary commit.

head (head ref) (little) A named reference to the commit at the tip of a branch. Heads are stored in a file in $GIT_DIR/refs/heads/ directory.

Demo

rebase To reapply a series of changes from a branch to a different base, and reset the head of that branch to the result.

fetch Fetching a branch means to get the branch’s head ref from a remote repository, to find out which objects are missing from the local object database, and to get them, too. See also git-fetch(1).

pull Pulling a branch means to fetch it and merge it. See also git-pull(1).

push Pushing a branch means to get the branch’s head ref from a remote repository, find out if it is a direct ancestor to the branch’s local head ref, and in that case, putting all objects, which are reachable from the local head ref, and which are missing from the remote repository, into the remote object database, and updating the remote head ref. If the remote head is not an ancestor to the local head, the push fails..

Pull request (manage technical debt!)

Demo

.gitignore A gitignore file specifies intentionally untracked files that Git should ignore.

Import tfvc to git

Demo

submodule A repository that holds the history of a separate project inside another repository (the latter of which is called superproject).

index A collection of files with stat information, whose contents are stored as objects. The index is a stored version of your working tree. Truth be told, it can also contain a second, and even a third version of a working tree, which are used when merging.

graph

SourceTree

Git Virtual File System (GVFS) GVFS stands for Git Virtual File System. GVFS virtualizes the file system beneath your git repo so that git and all tools see a fully hydrated repo, but GVFS only downloads objects as they are needed. GVFS also manages git's sparse-checkout to ensure that git operations like status, checkout, etc., can be as quick as possible.

Git branching

Tfvc or git

Tfvc or git TFVC Git Large files (Although GVFS will eliminate this) Seasoned developer knowledge Centralized (History, branching, large code base) Git Tools and features Support Younger developer knowledge Industry and Microsoft standard Distributed (History, branching, smaller code base) (Popular) Object database (One copy of code base)

Tfvc or git

Tfvc or git So, TFVC or Git? If I had to pick… Both work great and enable DevOps Both do nearly the same things, but in different ways If I had to pick… Version Control Guidance (ALM Rangers) The right version control for you

Appendix Git “git help glossary” SourceTree gitignore templates Git in Visual Studio Scaling Git GVFS Import repo from TFVC to Git ALM Rangers Git Branching