SlideShare uma empresa Scribd logo
1 de 36
Git i Visual Studio 2013
Terje Sandstrøm
Visual Studio ALM MVP
http://geekswithblogs.net/terje
Inmeta Consulting AS
Inmeta Consulting AS - Terje Sandstrøm 2013
Lars J. Nilsson
ALM Manager
http://larzjoakimnilzzon.blogspot.no/
Inmeta Consulting AS
SHAMELESSLY
borrowed from
Richard
Banks
Visual Studio ALM MVP, Australia
http://www.Richard-banks.org
Http://www.readify.net/
Which again has …….
SHAMELESSLY
borrowed from
SCOTT
CHACON
(https://github.com/schacon/git-presentations
http://git-scm.com
• Git – intro
• Git repositories
• Working with git
• Branching
• Git in the Enterprise
Inmeta Consulting AS - Terje Sandstrøm 2013
git is
NOT AN
EVOLUTION
of existing VC systems
1
It is a
RETHINK
git is
NOT A
SOURCE CONTROL
SYSTEM
2
git is a
CONTENT
CONTROL SYSTEM
GIT is a
Distributed Version Control System
Fast, Small, Distributed
http://gitscm.com/
The entire Pro Git book
written by Scott Chacon is
available to read online for
free. Dead tree versions are
available on Amazon.com.
GIT DESIGN
a
TOOLKIT
for a DVCS
many chainable
COMMANDS
Traditional GIT is:
big on the
POWER
small on the
friendly
Easier tools
Visual Studio 2012 with Git extensions
Visual Studio 2013 , Git is included OOB
Add some nice tools:
SourceTree, Atlassian
https://github.com/Inmeta/Knowledge/wiki/recommended-git-
toolsInmeta Consulting AS - Terje Sandstrøm 2013
Git fully integrated
into Visual Studio
and TFS
Team Foundation Server / Service
Project 2Project 1
3rd Party3rd Party
Local
Repo
Other
Remote
Git Repo
most version control
systems store and track
CHANGES
(e.g. TFVC, SVN, mercurial)
C1
A
C
B
C2
∆1
∆1
C3
∆2
∆2
C4
∆3
C5
∆4
∆4
Git stores
SNAPSHOTS
of content
Snapshots are stored in a
DIRECTED ACYCLIC GRAPH
(i.e. a graph database)
C1
A
C
B
C2 C3 C4 C5
A’
C’
B
A’
C’’
B’
A’’
C’’
B’
A’’’
C’’
B’’
Git repo(sitory)
TFS 2013
Git repo(sitory)
GitHub/CodePlex/Bit
bucket
Cloning
Workspace
Code
Commit, (Stage), Add
Fetch, Pull, Push
Git repo(sitory)
Local
Inmeta Consulting AS - Terje Sandstrøm 2013
Repository models
Inmeta Consulting AS - Terje Sandstrøm 2013
Branching and merging
Frictionless context switching
Flexible
Fast
Inmeta Consulting AS - Terje Sandstrøm 2013
Demo
Inmeta Consulting AS - Terje Sandstrøm 2013
Terms with different meanings
Action TFS VC Git VS Git
Open a file Checkout NA, you just open it Marked as touched
(like checkout in
TFS VC)
Get latest files from
server
Get Latest Fetch + Pull Fetch + Pull
Send files to
server/repo
Checkin Commit + Push Commit + Push
Update all (two
above)
NA NA Sync
Does Pull + Push,
may trigger a merge
Move focus to
another branch
Manually change
folder in SC
Checkout Switch
Setup
Inmeta Consulting AS - Terje Sandstrøm 2013
•Git in the Enterprise
• Git is small
• Enterprises are big
• Enterprises are many small gits
Inmeta Consulting AS - Terje Sandstrøm 2013
Keep the git repo’s small
NO BINARIES IN SOURCE CONTROL !!!!!!!!!!!!
Use Nuget (or some other package manager) to keep binaries out
See https://github.com/Inmeta/Knowledge/wiki/NuGet-Setup
Publish your own libraries to a Nuget feed
Use MyGet http://www.myget.org/
Host your own Nuget feed, see
http://blog.spinthemoose.com/2013/03/09/nuget-tip-2-run-your-own-package-feed/
Inmeta Consulting AS - Terje Sandstrøm 2013
Managing a System with Git and Nuget
Split System into multiple Applications
Place each application in its own Git repository
Use a package manager to publish the binaries locally (within the company)
Use automatic package restore to retrieve them on build
Inmeta Consulting AS - Terje Sandstrøm 2013
Migrating from (or coexisting with) TFSVC to
GIT
Use Git-tf: https://gittf.codeplex.com/
(Download: http://www.microsoft.com/en-us/download/details.aspx?id=30474)
Clone a TFSVC TP or parts of a TP, into a git repo
Shallow clone or Deep Clone
Works on Windows and Mac
Inmeta Consulting AS - Terje Sandstrøm 2013
Splitting and merging repos
Split a repo:
Merge two repos:
Multiple ways:
1) simple with dual remote repos and just merge them
2) Git subtree
http://stackoverflow.com/questions/1425892/how-do-you-merge-two-git-repositories
Inmeta Consulting AS - Terje Sandstrøm 2013
Git repo(sitory)
LocalGit repo(sitory)
Local
Git repo(sitory)
TFS 2013
Git repo(sitory)
GitHub/CodePlex/Bit
bucket
Workspace
Code
Commit, (Stage), Add
Fetch, Pull, Push
Git repo(sitory)
Local
Inmeta Consulting AS - Terje Sandstrøm 2013
The future of Version Control in TFS
Then:
We had: Source Safe
We got : TFS VC
Now:
We have: TFS VC
We got: Git
Future: Microsoft hasn’t said, but we can assume.....
Inmeta Consulting AS - Terje Sandstrøm 2013
http://geekswithblogs.net/Terje

Mais conteúdo relacionado

Mais procurados

GitLab 8.5 Highlights and Step-by-step tutorial
GitLab 8.5 Highlights and Step-by-step tutorialGitLab 8.5 Highlights and Step-by-step tutorial
GitLab 8.5 Highlights and Step-by-step tutorialHeather McNamee
 
Devoxx 2016 Using Jenkins, Gerrit and Spark for Continuous Delivery Analytics
Devoxx 2016 Using Jenkins, Gerrit and Spark for Continuous Delivery AnalyticsDevoxx 2016 Using Jenkins, Gerrit and Spark for Continuous Delivery Analytics
Devoxx 2016 Using Jenkins, Gerrit and Spark for Continuous Delivery AnalyticsLuca Milanesio
 
Zero-Downtime Gerrit Code Review Upgrade
Zero-Downtime Gerrit Code Review UpgradeZero-Downtime Gerrit Code Review Upgrade
Zero-Downtime Gerrit Code Review UpgradeLuca Milanesio
 
Gerrit is Getting Native with RPM, Deb and Docker
Gerrit is Getting Native with RPM, Deb and DockerGerrit is Getting Native with RPM, Deb and Docker
Gerrit is Getting Native with RPM, Deb and DockerLuca Milanesio
 
Git Lab Introduction
Git Lab IntroductionGit Lab Introduction
Git Lab IntroductionKrunal Doshi
 
GerritHub.io - present, past, future
GerritHub.io - present, past, futureGerritHub.io - present, past, future
GerritHub.io - present, past, futureLuca Milanesio
 
Gerrit Code Review: how to script a plugin with Scala and Groovy
Gerrit Code Review: how to script a plugin with Scala and GroovyGerrit Code Review: how to script a plugin with Scala and Groovy
Gerrit Code Review: how to script a plugin with Scala and GroovyLuca Milanesio
 
Gerrit Code Review Analytics
Gerrit Code Review AnalyticsGerrit Code Review Analytics
Gerrit Code Review AnalyticsLuca Milanesio
 
OpenTuesday: Agile Testautomatisierung und Continuous Integration
OpenTuesday: Agile Testautomatisierung und Continuous IntegrationOpenTuesday: Agile Testautomatisierung und Continuous Integration
OpenTuesday: Agile Testautomatisierung und Continuous IntegrationDigicomp Academy AG
 
Bringing Pull Request to Gerrit
Bringing Pull Request to GerritBringing Pull Request to Gerrit
Bringing Pull Request to GerritEryk Szymanski
 
Gerrit Code Review with GitHub plugin
Gerrit Code Review with GitHub pluginGerrit Code Review with GitHub plugin
Gerrit Code Review with GitHub pluginLuca Milanesio
 
Getting Started with GitHub
Getting Started with GitHubGetting Started with GitHub
Getting Started with GitHubMichael Redlich
 
Awesome Git Workflow for Agencies and Teams
Awesome Git Workflow for Agencies and TeamsAwesome Git Workflow for Agencies and Teams
Awesome Git Workflow for Agencies and TeamsChris Reynolds
 
Git - Simplified For Testers
Git - Simplified For TestersGit - Simplified For Testers
Git - Simplified For Testersupadhyay_25
 
Gerrit linuxtag2011
Gerrit linuxtag2011Gerrit linuxtag2011
Gerrit linuxtag2011thkoch
 
Introducing GitLab (June 2018)
Introducing GitLab (June 2018)Introducing GitLab (June 2018)
Introducing GitLab (June 2018)Noa Harel
 

Mais procurados (20)

GitLab 8.5 Highlights and Step-by-step tutorial
GitLab 8.5 Highlights and Step-by-step tutorialGitLab 8.5 Highlights and Step-by-step tutorial
GitLab 8.5 Highlights and Step-by-step tutorial
 
Devoxx 2016 Using Jenkins, Gerrit and Spark for Continuous Delivery Analytics
Devoxx 2016 Using Jenkins, Gerrit and Spark for Continuous Delivery AnalyticsDevoxx 2016 Using Jenkins, Gerrit and Spark for Continuous Delivery Analytics
Devoxx 2016 Using Jenkins, Gerrit and Spark for Continuous Delivery Analytics
 
Zero-Downtime Gerrit Code Review Upgrade
Zero-Downtime Gerrit Code Review UpgradeZero-Downtime Gerrit Code Review Upgrade
Zero-Downtime Gerrit Code Review Upgrade
 
Gerrit is Getting Native with RPM, Deb and Docker
Gerrit is Getting Native with RPM, Deb and DockerGerrit is Getting Native with RPM, Deb and Docker
Gerrit is Getting Native with RPM, Deb and Docker
 
Git Lab Introduction
Git Lab IntroductionGit Lab Introduction
Git Lab Introduction
 
GerritHub.io - present, past, future
GerritHub.io - present, past, futureGerritHub.io - present, past, future
GerritHub.io - present, past, future
 
Git kelvin
Git   kelvinGit   kelvin
Git kelvin
 
Gerrit Code Review: how to script a plugin with Scala and Groovy
Gerrit Code Review: how to script a plugin with Scala and GroovyGerrit Code Review: how to script a plugin with Scala and Groovy
Gerrit Code Review: how to script a plugin with Scala and Groovy
 
Gerrit Code Review Analytics
Gerrit Code Review AnalyticsGerrit Code Review Analytics
Gerrit Code Review Analytics
 
OpenTuesday: Agile Testautomatisierung und Continuous Integration
OpenTuesday: Agile Testautomatisierung und Continuous IntegrationOpenTuesday: Agile Testautomatisierung und Continuous Integration
OpenTuesday: Agile Testautomatisierung und Continuous Integration
 
Intro to Git & GitHub
Intro to Git & GitHubIntro to Git & GitHub
Intro to Git & GitHub
 
Bringing Pull Request to Gerrit
Bringing Pull Request to GerritBringing Pull Request to Gerrit
Bringing Pull Request to Gerrit
 
GitHub
GitHubGitHub
GitHub
 
Gerrit Code Review with GitHub plugin
Gerrit Code Review with GitHub pluginGerrit Code Review with GitHub plugin
Gerrit Code Review with GitHub plugin
 
Getting Started with GitHub
Getting Started with GitHubGetting Started with GitHub
Getting Started with GitHub
 
Git Workshop
Git WorkshopGit Workshop
Git Workshop
 
Awesome Git Workflow for Agencies and Teams
Awesome Git Workflow for Agencies and TeamsAwesome Git Workflow for Agencies and Teams
Awesome Git Workflow for Agencies and Teams
 
Git - Simplified For Testers
Git - Simplified For TestersGit - Simplified For Testers
Git - Simplified For Testers
 
Gerrit linuxtag2011
Gerrit linuxtag2011Gerrit linuxtag2011
Gerrit linuxtag2011
 
Introducing GitLab (June 2018)
Introducing GitLab (June 2018)Introducing GitLab (June 2018)
Introducing GitLab (June 2018)
 

Semelhante a Git i tfs 2013

Processes & tooling to develop the editor
Processes & tooling to develop the editorProcesses & tooling to develop the editor
Processes & tooling to develop the editorTech Head Brothers
 
Introduction to GitHub, Open Source and Tech Article
Introduction to GitHub, Open Source and Tech ArticleIntroduction to GitHub, Open Source and Tech Article
Introduction to GitHub, Open Source and Tech ArticlePRIYATHAMDARISI
 
Introduction to git administration
Introduction to git administrationIntroduction to git administration
Introduction to git administrationShawn Doyle
 
Bedjango talk about Git & GitHub
Bedjango talk about Git & GitHubBedjango talk about Git & GitHub
Bedjango talk about Git & GitHubBeDjango
 
Open up your platform with Open Source and GitHub
Open up your platform with Open Source and GitHubOpen up your platform with Open Source and GitHub
Open up your platform with Open Source and GitHubScott Graham
 
You're doing it wrong! Git it right!
You're doing it wrong! Git it right!You're doing it wrong! Git it right!
You're doing it wrong! Git it right!Cory Webb
 
Introduction to Git, DrupalCamp LA 2015
Introduction to Git, DrupalCamp LA 2015Introduction to Git, DrupalCamp LA 2015
Introduction to Git, DrupalCamp LA 2015mwrather
 
Introduction to git and stash
Introduction to git and stashIntroduction to git and stash
Introduction to git and stashXpand IT
 
JAZOON'13 - Stefan Saasen - True Git: The Great Migration
JAZOON'13 - Stefan Saasen - True Git: The Great MigrationJAZOON'13 - Stefan Saasen - True Git: The Great Migration
JAZOON'13 - Stefan Saasen - True Git: The Great Migrationjazoon13
 
Webinar: Arbeiten mit Git und GitHub
Webinar: Arbeiten mit Git und GitHubWebinar: Arbeiten mit Git und GitHub
Webinar: Arbeiten mit Git und GitHubwasmitweb GmbH
 
Introduction to Git for Network Engineers (Lab Guide)
Introduction to Git for Network Engineers (Lab Guide)Introduction to Git for Network Engineers (Lab Guide)
Introduction to Git for Network Engineers (Lab Guide)Joel W. King
 

Semelhante a Git i tfs 2013 (20)

Introduction to git & github
Introduction to git & githubIntroduction to git & github
Introduction to git & github
 
Processes & tooling to develop the editor
Processes & tooling to develop the editorProcesses & tooling to develop the editor
Processes & tooling to develop the editor
 
Git
GitGit
Git
 
Introduction to GitHub, Open Source and Tech Article
Introduction to GitHub, Open Source and Tech ArticleIntroduction to GitHub, Open Source and Tech Article
Introduction to GitHub, Open Source and Tech Article
 
Git workshop
Git workshopGit workshop
Git workshop
 
3 Git
3 Git3 Git
3 Git
 
Introduction to git administration
Introduction to git administrationIntroduction to git administration
Introduction to git administration
 
Bedjango talk about Git & GitHub
Bedjango talk about Git & GitHubBedjango talk about Git & GitHub
Bedjango talk about Git & GitHub
 
Git introduction
Git introductionGit introduction
Git introduction
 
Open up your platform with Open Source and GitHub
Open up your platform with Open Source and GitHubOpen up your platform with Open Source and GitHub
Open up your platform with Open Source and GitHub
 
Gitting better
Gitting betterGitting better
Gitting better
 
True Git
True Git True Git
True Git
 
Git best practices workshop
Git best practices workshopGit best practices workshop
Git best practices workshop
 
You're doing it wrong! Git it right!
You're doing it wrong! Git it right!You're doing it wrong! Git it right!
You're doing it wrong! Git it right!
 
Introduction to Git, DrupalCamp LA 2015
Introduction to Git, DrupalCamp LA 2015Introduction to Git, DrupalCamp LA 2015
Introduction to Git, DrupalCamp LA 2015
 
Introduction to git and stash
Introduction to git and stashIntroduction to git and stash
Introduction to git and stash
 
JAZOON'13 - Stefan Saasen - True Git: The Great Migration
JAZOON'13 - Stefan Saasen - True Git: The Great MigrationJAZOON'13 - Stefan Saasen - True Git: The Great Migration
JAZOON'13 - Stefan Saasen - True Git: The Great Migration
 
Webinar: Arbeiten mit Git und GitHub
Webinar: Arbeiten mit Git und GitHubWebinar: Arbeiten mit Git und GitHub
Webinar: Arbeiten mit Git und GitHub
 
Introduction to Git for Network Engineers (Lab Guide)
Introduction to Git for Network Engineers (Lab Guide)Introduction to Git for Network Engineers (Lab Guide)
Introduction to Git for Network Engineers (Lab Guide)
 
Mini-training: Let’s Git It!
Mini-training: Let’s Git It!Mini-training: Let’s Git It!
Mini-training: Let’s Git It!
 

Último

Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...Lisi Hocke
 
Automate your OpenSIPS config tests - OpenSIPS Summit 2024
Automate your OpenSIPS config tests - OpenSIPS Summit 2024Automate your OpenSIPS config tests - OpenSIPS Summit 2024
Automate your OpenSIPS config tests - OpenSIPS Summit 2024Andreas Granig
 
AzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdf
AzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdfAzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdf
AzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdfryanfarris8
 
Abortion Pill Prices Jane Furse ](+27832195400*)[ 🏥 Women's Abortion Clinic i...
Abortion Pill Prices Jane Furse ](+27832195400*)[ 🏥 Women's Abortion Clinic i...Abortion Pill Prices Jane Furse ](+27832195400*)[ 🏥 Women's Abortion Clinic i...
Abortion Pill Prices Jane Furse ](+27832195400*)[ 🏥 Women's Abortion Clinic i...Abortion Clinic
 
From Theory to Practice: Utilizing SpiraPlan's REST API
From Theory to Practice: Utilizing SpiraPlan's REST APIFrom Theory to Practice: Utilizing SpiraPlan's REST API
From Theory to Practice: Utilizing SpiraPlan's REST APIInflectra
 
OpenChain Webinar: AboutCode and Beyond - End-to-End SCA
OpenChain Webinar: AboutCode and Beyond - End-to-End SCAOpenChain Webinar: AboutCode and Beyond - End-to-End SCA
OpenChain Webinar: AboutCode and Beyond - End-to-End SCAShane Coughlan
 
[GRCPP] Introduction to concepts (C++20)
[GRCPP] Introduction to concepts (C++20)[GRCPP] Introduction to concepts (C++20)
[GRCPP] Introduction to concepts (C++20)Dimitrios Platis
 
Abortion Pills For Sale WhatsApp[[+27737758557]] In Birch Acres, Abortion Pil...
Abortion Pills For Sale WhatsApp[[+27737758557]] In Birch Acres, Abortion Pil...Abortion Pills For Sale WhatsApp[[+27737758557]] In Birch Acres, Abortion Pil...
Abortion Pills For Sale WhatsApp[[+27737758557]] In Birch Acres, Abortion Pil...drm1699
 
Workshop - Architecting Innovative Graph Applications- GraphSummit Milan
Workshop -  Architecting Innovative Graph Applications- GraphSummit MilanWorkshop -  Architecting Innovative Graph Applications- GraphSummit Milan
Workshop - Architecting Innovative Graph Applications- GraphSummit MilanNeo4j
 
Lessons Learned from Building a Serverless Notifications System.pdf
Lessons Learned from Building a Serverless Notifications System.pdfLessons Learned from Building a Serverless Notifications System.pdf
Lessons Learned from Building a Serverless Notifications System.pdfSrushith Repakula
 
Novo Nordisk: When Knowledge Graphs meet LLMs
Novo Nordisk: When Knowledge Graphs meet LLMsNovo Nordisk: When Knowledge Graphs meet LLMs
Novo Nordisk: When Knowledge Graphs meet LLMsNeo4j
 

Último (20)

Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
 
Abortion Clinic in Bloemfontein [(+27832195400*)]🏥Safe Abortion Pills In Bloe...
Abortion Clinic in Bloemfontein [(+27832195400*)]🏥Safe Abortion Pills In Bloe...Abortion Clinic in Bloemfontein [(+27832195400*)]🏥Safe Abortion Pills In Bloe...
Abortion Clinic in Bloemfontein [(+27832195400*)]🏥Safe Abortion Pills In Bloe...
 
Automate your OpenSIPS config tests - OpenSIPS Summit 2024
Automate your OpenSIPS config tests - OpenSIPS Summit 2024Automate your OpenSIPS config tests - OpenSIPS Summit 2024
Automate your OpenSIPS config tests - OpenSIPS Summit 2024
 
AzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdf
AzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdfAzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdf
AzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdf
 
Abortion Pill Prices Jane Furse ](+27832195400*)[ 🏥 Women's Abortion Clinic i...
Abortion Pill Prices Jane Furse ](+27832195400*)[ 🏥 Women's Abortion Clinic i...Abortion Pill Prices Jane Furse ](+27832195400*)[ 🏥 Women's Abortion Clinic i...
Abortion Pill Prices Jane Furse ](+27832195400*)[ 🏥 Women's Abortion Clinic i...
 
From Theory to Practice: Utilizing SpiraPlan's REST API
From Theory to Practice: Utilizing SpiraPlan's REST APIFrom Theory to Practice: Utilizing SpiraPlan's REST API
From Theory to Practice: Utilizing SpiraPlan's REST API
 
OpenChain Webinar: AboutCode and Beyond - End-to-End SCA
OpenChain Webinar: AboutCode and Beyond - End-to-End SCAOpenChain Webinar: AboutCode and Beyond - End-to-End SCA
OpenChain Webinar: AboutCode and Beyond - End-to-End SCA
 
Abortion Clinic In Stanger ](+27832195400*)[ 🏥 Safe Abortion Pills In Stanger...
Abortion Clinic In Stanger ](+27832195400*)[ 🏥 Safe Abortion Pills In Stanger...Abortion Clinic In Stanger ](+27832195400*)[ 🏥 Safe Abortion Pills In Stanger...
Abortion Clinic In Stanger ](+27832195400*)[ 🏥 Safe Abortion Pills In Stanger...
 
Abortion Clinic In Pretoria ](+27832195400*)[ 🏥 Safe Abortion Pills in Pretor...
Abortion Clinic In Pretoria ](+27832195400*)[ 🏥 Safe Abortion Pills in Pretor...Abortion Clinic In Pretoria ](+27832195400*)[ 🏥 Safe Abortion Pills in Pretor...
Abortion Clinic In Pretoria ](+27832195400*)[ 🏥 Safe Abortion Pills in Pretor...
 
[GRCPP] Introduction to concepts (C++20)
[GRCPP] Introduction to concepts (C++20)[GRCPP] Introduction to concepts (C++20)
[GRCPP] Introduction to concepts (C++20)
 
Abortion Pills For Sale WhatsApp[[+27737758557]] In Birch Acres, Abortion Pil...
Abortion Pills For Sale WhatsApp[[+27737758557]] In Birch Acres, Abortion Pil...Abortion Pills For Sale WhatsApp[[+27737758557]] In Birch Acres, Abortion Pil...
Abortion Pills For Sale WhatsApp[[+27737758557]] In Birch Acres, Abortion Pil...
 
Abortion Clinic In Pongola ](+27832195400*)[ 🏥 Safe Abortion Pills In Pongola...
Abortion Clinic In Pongola ](+27832195400*)[ 🏥 Safe Abortion Pills In Pongola...Abortion Clinic In Pongola ](+27832195400*)[ 🏥 Safe Abortion Pills In Pongola...
Abortion Clinic In Pongola ](+27832195400*)[ 🏥 Safe Abortion Pills In Pongola...
 
Abortion Clinic In Johannesburg ](+27832195400*)[ 🏥 Safe Abortion Pills in Jo...
Abortion Clinic In Johannesburg ](+27832195400*)[ 🏥 Safe Abortion Pills in Jo...Abortion Clinic In Johannesburg ](+27832195400*)[ 🏥 Safe Abortion Pills in Jo...
Abortion Clinic In Johannesburg ](+27832195400*)[ 🏥 Safe Abortion Pills in Jo...
 
Workshop - Architecting Innovative Graph Applications- GraphSummit Milan
Workshop -  Architecting Innovative Graph Applications- GraphSummit MilanWorkshop -  Architecting Innovative Graph Applications- GraphSummit Milan
Workshop - Architecting Innovative Graph Applications- GraphSummit Milan
 
Abortion Pill Prices Rustenburg [(+27832195400*)] 🏥 Women's Abortion Clinic i...
Abortion Pill Prices Rustenburg [(+27832195400*)] 🏥 Women's Abortion Clinic i...Abortion Pill Prices Rustenburg [(+27832195400*)] 🏥 Women's Abortion Clinic i...
Abortion Pill Prices Rustenburg [(+27832195400*)] 🏥 Women's Abortion Clinic i...
 
Abortion Pill Prices Polokwane ](+27832195400*)[ 🏥 Women's Abortion Clinic in...
Abortion Pill Prices Polokwane ](+27832195400*)[ 🏥 Women's Abortion Clinic in...Abortion Pill Prices Polokwane ](+27832195400*)[ 🏥 Women's Abortion Clinic in...
Abortion Pill Prices Polokwane ](+27832195400*)[ 🏥 Women's Abortion Clinic in...
 
Lessons Learned from Building a Serverless Notifications System.pdf
Lessons Learned from Building a Serverless Notifications System.pdfLessons Learned from Building a Serverless Notifications System.pdf
Lessons Learned from Building a Serverless Notifications System.pdf
 
Novo Nordisk: When Knowledge Graphs meet LLMs
Novo Nordisk: When Knowledge Graphs meet LLMsNovo Nordisk: When Knowledge Graphs meet LLMs
Novo Nordisk: When Knowledge Graphs meet LLMs
 
Abortion Clinic in Midrand [(+27832195400*)]🏥Safe Abortion Pills In Midrand |...
Abortion Clinic in Midrand [(+27832195400*)]🏥Safe Abortion Pills In Midrand |...Abortion Clinic in Midrand [(+27832195400*)]🏥Safe Abortion Pills In Midrand |...
Abortion Clinic in Midrand [(+27832195400*)]🏥Safe Abortion Pills In Midrand |...
 
Abortion Pill Prices Jane Furse ](+27832195400*)[🏥Women's Abortion Clinic in ...
Abortion Pill Prices Jane Furse ](+27832195400*)[🏥Women's Abortion Clinic in ...Abortion Pill Prices Jane Furse ](+27832195400*)[🏥Women's Abortion Clinic in ...
Abortion Pill Prices Jane Furse ](+27832195400*)[🏥Women's Abortion Clinic in ...
 

Git i tfs 2013

  • 1. Git i Visual Studio 2013 Terje Sandstrøm Visual Studio ALM MVP http://geekswithblogs.net/terje Inmeta Consulting AS Inmeta Consulting AS - Terje Sandstrøm 2013 Lars J. Nilsson ALM Manager http://larzjoakimnilzzon.blogspot.no/ Inmeta Consulting AS
  • 2. SHAMELESSLY borrowed from Richard Banks Visual Studio ALM MVP, Australia http://www.Richard-banks.org Http://www.readify.net/ Which again has …….
  • 4. • Git – intro • Git repositories • Working with git • Branching • Git in the Enterprise Inmeta Consulting AS - Terje Sandstrøm 2013
  • 5. git is NOT AN EVOLUTION of existing VC systems 1
  • 7. git is NOT A SOURCE CONTROL SYSTEM 2
  • 9. GIT is a Distributed Version Control System Fast, Small, Distributed http://gitscm.com/ The entire Pro Git book written by Scott Chacon is available to read online for free. Dead tree versions are available on Amazon.com.
  • 13.
  • 14. Traditional GIT is: big on the POWER small on the friendly
  • 15. Easier tools Visual Studio 2012 with Git extensions Visual Studio 2013 , Git is included OOB Add some nice tools: SourceTree, Atlassian https://github.com/Inmeta/Knowledge/wiki/recommended-git- toolsInmeta Consulting AS - Terje Sandstrøm 2013
  • 16. Git fully integrated into Visual Studio and TFS
  • 17. Team Foundation Server / Service Project 2Project 1 3rd Party3rd Party Local Repo Other Remote Git Repo
  • 18. most version control systems store and track CHANGES (e.g. TFVC, SVN, mercurial)
  • 21. Snapshots are stored in a DIRECTED ACYCLIC GRAPH (i.e. a graph database)
  • 22. C1 A C B C2 C3 C4 C5 A’ C’ B A’ C’’ B’ A’’ C’’ B’ A’’’ C’’ B’’
  • 23. Git repo(sitory) TFS 2013 Git repo(sitory) GitHub/CodePlex/Bit bucket Cloning Workspace Code Commit, (Stage), Add Fetch, Pull, Push Git repo(sitory) Local Inmeta Consulting AS - Terje Sandstrøm 2013
  • 24. Repository models Inmeta Consulting AS - Terje Sandstrøm 2013
  • 25. Branching and merging Frictionless context switching Flexible Fast Inmeta Consulting AS - Terje Sandstrøm 2013
  • 26. Demo
  • 27. Inmeta Consulting AS - Terje Sandstrøm 2013 Terms with different meanings Action TFS VC Git VS Git Open a file Checkout NA, you just open it Marked as touched (like checkout in TFS VC) Get latest files from server Get Latest Fetch + Pull Fetch + Pull Send files to server/repo Checkin Commit + Push Commit + Push Update all (two above) NA NA Sync Does Pull + Push, may trigger a merge Move focus to another branch Manually change folder in SC Checkout Switch
  • 28. Setup Inmeta Consulting AS - Terje Sandstrøm 2013
  • 29. •Git in the Enterprise • Git is small • Enterprises are big • Enterprises are many small gits Inmeta Consulting AS - Terje Sandstrøm 2013
  • 30. Keep the git repo’s small NO BINARIES IN SOURCE CONTROL !!!!!!!!!!!! Use Nuget (or some other package manager) to keep binaries out See https://github.com/Inmeta/Knowledge/wiki/NuGet-Setup Publish your own libraries to a Nuget feed Use MyGet http://www.myget.org/ Host your own Nuget feed, see http://blog.spinthemoose.com/2013/03/09/nuget-tip-2-run-your-own-package-feed/ Inmeta Consulting AS - Terje Sandstrøm 2013
  • 31. Managing a System with Git and Nuget Split System into multiple Applications Place each application in its own Git repository Use a package manager to publish the binaries locally (within the company) Use automatic package restore to retrieve them on build Inmeta Consulting AS - Terje Sandstrøm 2013
  • 32. Migrating from (or coexisting with) TFSVC to GIT Use Git-tf: https://gittf.codeplex.com/ (Download: http://www.microsoft.com/en-us/download/details.aspx?id=30474) Clone a TFSVC TP or parts of a TP, into a git repo Shallow clone or Deep Clone Works on Windows and Mac Inmeta Consulting AS - Terje Sandstrøm 2013
  • 33. Splitting and merging repos Split a repo: Merge two repos: Multiple ways: 1) simple with dual remote repos and just merge them 2) Git subtree http://stackoverflow.com/questions/1425892/how-do-you-merge-two-git-repositories Inmeta Consulting AS - Terje Sandstrøm 2013
  • 34. Git repo(sitory) LocalGit repo(sitory) Local Git repo(sitory) TFS 2013 Git repo(sitory) GitHub/CodePlex/Bit bucket Workspace Code Commit, (Stage), Add Fetch, Pull, Push Git repo(sitory) Local Inmeta Consulting AS - Terje Sandstrøm 2013
  • 35. The future of Version Control in TFS Then: We had: Source Safe We got : TFS VC Now: We have: TFS VC We got: Git Future: Microsoft hasn’t said, but we can assume..... Inmeta Consulting AS - Terje Sandstrøm 2013