SlideShare a Scribd company logo
1 of 15
On-Air 11 Dicembre 2018
Migrare da un VCS
centralizzato a Git
Sponsor
Cosa e come migrare
Ultima versione senza storia
Ultimi X mesi di storia
Storia completa
Unico repository Git
Più repository Git
Pulire la storia dai file che non sono da inserire in git
Ultima versione senza storia
Create il repository Git
Copiate nel repository l’ultima versione del
progetto
Riorganizzate le cartelle
Effettuate il primo commit
Ultimi mesi di storia, da TFVC a Git
Import automatico da Azure DevOps
Da TFVC a Git
Storia completa
Conversione da centralizzato a git, Ex: Git Tfs
Installabile automaticamente da choloatey
Open Source https://github.com/git-tfs/git-tfs
Storia complete – Eliminare ciò che non
serve
Una volta che il repository è stato importato
potrebbe essere necessario andare a rimuovere
alcune sottocartelle
Packages
Node_module
Qualsiasi file binario che non dovrebbe trovarsi in Git
git filter-branch --tree-filter 'rm -rf Tools/Deploy'
HEAD
Mantenere la struttura delle branches
L’opzione –branches=all permette di clonare le branch
Mantenere le branches
Sviluppo misto
Git TFS come strumento operativo
Git Tfs permette di effettuare pull e push su
repository TFVC
Questo permette di continuare ad usare il
centralizzato mentre in locale si usa Git
Alcuni membri del team diventano familiari con Git
Si verifica esattamente come l’importazione si
comporta con git (grandezza cartella etc)
Migrazione meno distruttiva
Quando si effettua la migrazione definitiva il team è
più esperto e preparato
Work Item API per associazione al codice
Grazie alle api è possibile andare ad esaminare I
commenti in Git al fine di ricreare l’associazione
con il codice migrato.
L’associazione è idempotente, perchè
semplicemente crea un link solamente se non
esistente.
Demo Work Item API

More Related Content

Similar to Migrare da un VCS centralizzato a Git

Git/Continuous Integration/Docker: la terna dello sviluppo moderno.
Git/Continuous Integration/Docker: la terna dello sviluppo moderno.Git/Continuous Integration/Docker: la terna dello sviluppo moderno.
Git/Continuous Integration/Docker: la terna dello sviluppo moderno.Gerardo Di Iorio
 
Revisionare, tracciare, collaborare. Version control con git
Revisionare, tracciare, collaborare. Version control con gitRevisionare, tracciare, collaborare. Version control con git
Revisionare, tracciare, collaborare. Version control con gitFabio Alessandrelli
 
Qt Lezione3: un visualizzatore di immagini
Qt Lezione3: un visualizzatore di immaginiQt Lezione3: un visualizzatore di immagini
Qt Lezione3: un visualizzatore di immaginiPaolo Sereno
 
Git – lo stupido gestore di contenuti
Git – lo stupido gestore di contenutiGit – lo stupido gestore di contenuti
Git – lo stupido gestore di contenutiGiulio Caccin
 
Strategie di migrazione da Team Foundation Server ad Azure DevOps Services
Strategie di migrazione da Team Foundation Server ad Azure DevOps ServicesStrategie di migrazione da Team Foundation Server ad Azure DevOps Services
Strategie di migrazione da Team Foundation Server ad Azure DevOps ServicesMatteo Emili
 
Git gestione comoda del repository
Git   gestione comoda del repositoryGit   gestione comoda del repository
Git gestione comoda del repositoryRoberto Polli
 
Git: un'introduzione pratica
Git: un'introduzione praticaGit: un'introduzione pratica
Git: un'introduzione praticaBabel
 

Similar to Migrare da un VCS centralizzato a Git (15)

Git/Continuous Integration/Docker: la terna dello sviluppo moderno.
Git/Continuous Integration/Docker: la terna dello sviluppo moderno.Git/Continuous Integration/Docker: la terna dello sviluppo moderno.
Git/Continuous Integration/Docker: la terna dello sviluppo moderno.
 
Revisionare, tracciare, collaborare. Version control con git
Revisionare, tracciare, collaborare. Version control con gitRevisionare, tracciare, collaborare. Version control con git
Revisionare, tracciare, collaborare. Version control con git
 
Introduzione a Git
Introduzione a GitIntroduzione a Git
Introduzione a Git
 
GIT SOTTO IL COFANO
GIT SOTTO IL COFANOGIT SOTTO IL COFANO
GIT SOTTO IL COFANO
 
TYPO3 CMS 8.4 - Le novità
TYPO3 CMS 8.4 - Le novitàTYPO3 CMS 8.4 - Le novità
TYPO3 CMS 8.4 - Le novità
 
Qt Lezione3: un visualizzatore di immagini
Qt Lezione3: un visualizzatore di immaginiQt Lezione3: un visualizzatore di immagini
Qt Lezione3: un visualizzatore di immagini
 
Git – lo stupido gestore di contenuti
Git – lo stupido gestore di contenutiGit – lo stupido gestore di contenuti
Git – lo stupido gestore di contenuti
 
Git best practices
Git best practicesGit best practices
Git best practices
 
Xamarin DevOps
Xamarin DevOpsXamarin DevOps
Xamarin DevOps
 
Strategie di migrazione da Team Foundation Server ad Azure DevOps Services
Strategie di migrazione da Team Foundation Server ad Azure DevOps ServicesStrategie di migrazione da Team Foundation Server ad Azure DevOps Services
Strategie di migrazione da Team Foundation Server ad Azure DevOps Services
 
Git gestione comoda del repository
Git   gestione comoda del repositoryGit   gestione comoda del repository
Git gestione comoda del repository
 
Git: un'introduzione pratica
Git: un'introduzione praticaGit: un'introduzione pratica
Git: un'introduzione pratica
 
DDive - 8.5.2 Xpages - L'evoluzione continua
DDive - 8.5.2 Xpages - L'evoluzione continuaDDive - 8.5.2 Xpages - L'evoluzione continua
DDive - 8.5.2 Xpages - L'evoluzione continua
 
Introduzione a Git
Introduzione a GitIntroduzione a Git
Introduzione a Git
 
Grasso Frameworks Ajax
Grasso Frameworks AjaxGrasso Frameworks Ajax
Grasso Frameworks Ajax
 

More from Gian Maria Ricci

Se non sviluppo codice non sto lavorando
Se non sviluppo codice non sto lavorandoSe non sviluppo codice non sto lavorando
Se non sviluppo codice non sto lavorandoGian Maria Ricci
 
Gestire la qualità del codice con Visual Studio, SonarQube ed Azure Devops
Gestire la qualità del codice con Visual Studio, SonarQube ed Azure DevopsGestire la qualità del codice con Visual Studio, SonarQube ed Azure Devops
Gestire la qualità del codice con Visual Studio, SonarQube ed Azure DevopsGian Maria Ricci
 
Real World Build + Release automation in Azure DevOps
Real World Build + Release automation in Azure DevOpsReal World Build + Release automation in Azure DevOps
Real World Build + Release automation in Azure DevOpsGian Maria Ricci
 
Gestire i rilasci automatici con azure devops
Gestire i rilasci automatici con azure devopsGestire i rilasci automatici con azure devops
Gestire i rilasci automatici con azure devopsGian Maria Ricci
 
Build and release in code with azure devops pipelines
Build and release in code with azure devops pipelinesBuild and release in code with azure devops pipelines
Build and release in code with azure devops pipelinesGian Maria Ricci
 
Azure Pipeline in salsa yaml
Azure Pipeline in salsa yamlAzure Pipeline in salsa yaml
Azure Pipeline in salsa yamlGian Maria Ricci
 
Git gitflow pull requests in devops focused teams
Git gitflow pull requests in devops focused teamsGit gitflow pull requests in devops focused teams
Git gitflow pull requests in devops focused teamsGian Maria Ricci
 
Distribute your code with NUget and build vNext
Distribute your code with NUget and build vNextDistribute your code with NUget and build vNext
Distribute your code with NUget and build vNextGian Maria Ricci
 
Manage your environment with DSC
Manage your environment with DSCManage your environment with DSC
Manage your environment with DSCGian Maria Ricci
 
Introduction to Application insights
Introduction to Application insightsIntroduction to Application insights
Introduction to Application insightsGian Maria Ricci
 
Deploy applications with TFS Build
Deploy applications with TFS BuildDeploy applications with TFS Build
Deploy applications with TFS BuildGian Maria Ricci
 
TFS - Quale source control
TFS - Quale source controlTFS - Quale source control
TFS - Quale source controlGian Maria Ricci
 
Introduction to Visual Studio Online
Introduction to Visual Studio OnlineIntroduction to Visual Studio Online
Introduction to Visual Studio OnlineGian Maria Ricci
 
Come Organizzare il proprio Team Project
Come Organizzare il proprio Team ProjectCome Organizzare il proprio Team Project
Come Organizzare il proprio Team ProjectGian Maria Ricci
 
Automatically deployment to Azure Web Sites
Automatically deployment to Azure Web SitesAutomatically deployment to Azure Web Sites
Automatically deployment to Azure Web SitesGian Maria Ricci
 

More from Gian Maria Ricci (20)

Se non sviluppo codice non sto lavorando
Se non sviluppo codice non sto lavorandoSe non sviluppo codice non sto lavorando
Se non sviluppo codice non sto lavorando
 
Gestire la qualità del codice con Visual Studio, SonarQube ed Azure Devops
Gestire la qualità del codice con Visual Studio, SonarQube ed Azure DevopsGestire la qualità del codice con Visual Studio, SonarQube ed Azure Devops
Gestire la qualità del codice con Visual Studio, SonarQube ed Azure Devops
 
Real World Build + Release automation in Azure DevOps
Real World Build + Release automation in Azure DevOpsReal World Build + Release automation in Azure DevOps
Real World Build + Release automation in Azure DevOps
 
Gestire i rilasci automatici con azure devops
Gestire i rilasci automatici con azure devopsGestire i rilasci automatici con azure devops
Gestire i rilasci automatici con azure devops
 
Build and release in code with azure devops pipelines
Build and release in code with azure devops pipelinesBuild and release in code with azure devops pipelines
Build and release in code with azure devops pipelines
 
Azure Pipeline in salsa yaml
Azure Pipeline in salsa yamlAzure Pipeline in salsa yaml
Azure Pipeline in salsa yaml
 
Git gitflow pull requests in devops focused teams
Git gitflow pull requests in devops focused teamsGit gitflow pull requests in devops focused teams
Git gitflow pull requests in devops focused teams
 
Distribute your code with NUget and build vNext
Distribute your code with NUget and build vNextDistribute your code with NUget and build vNext
Distribute your code with NUget and build vNext
 
Manage your environment with DSC
Manage your environment with DSCManage your environment with DSC
Manage your environment with DSC
 
Introduction to Application insights
Introduction to Application insightsIntroduction to Application insights
Introduction to Application insights
 
Git branching model
Git branching modelGit branching model
Git branching model
 
Deploy applications with TFS Build
Deploy applications with TFS BuildDeploy applications with TFS Build
Deploy applications with TFS Build
 
TFS - Quale source control
TFS - Quale source controlTFS - Quale source control
TFS - Quale source control
 
Branch model in Git
Branch model in GitBranch model in Git
Branch model in Git
 
Introduction to Visual Studio Online
Introduction to Visual Studio OnlineIntroduction to Visual Studio Online
Introduction to Visual Studio Online
 
Git si o Git No
Git si o Git NoGit si o Git No
Git si o Git No
 
Testing
TestingTesting
Testing
 
Come Organizzare il proprio Team Project
Come Organizzare il proprio Team ProjectCome Organizzare il proprio Team Project
Come Organizzare il proprio Team Project
 
Git Perchè Usarlo
Git Perchè UsarloGit Perchè Usarlo
Git Perchè Usarlo
 
Automatically deployment to Azure Web Sites
Automatically deployment to Azure Web SitesAutomatically deployment to Azure Web Sites
Automatically deployment to Azure Web Sites
 

Migrare da un VCS centralizzato a Git

  • 2. Migrare da un VCS centralizzato a Git
  • 4. Cosa e come migrare Ultima versione senza storia Ultimi X mesi di storia Storia completa Unico repository Git Più repository Git Pulire la storia dai file che non sono da inserire in git
  • 5. Ultima versione senza storia Create il repository Git Copiate nel repository l’ultima versione del progetto Riorganizzate le cartelle Effettuate il primo commit
  • 6. Ultimi mesi di storia, da TFVC a Git Import automatico da Azure DevOps
  • 7. Da TFVC a Git
  • 8. Storia completa Conversione da centralizzato a git, Ex: Git Tfs Installabile automaticamente da choloatey Open Source https://github.com/git-tfs/git-tfs
  • 9. Storia complete – Eliminare ciò che non serve Una volta che il repository è stato importato potrebbe essere necessario andare a rimuovere alcune sottocartelle Packages Node_module Qualsiasi file binario che non dovrebbe trovarsi in Git git filter-branch --tree-filter 'rm -rf Tools/Deploy' HEAD
  • 10. Mantenere la struttura delle branches L’opzione –branches=all permette di clonare le branch
  • 13. Git TFS come strumento operativo Git Tfs permette di effettuare pull e push su repository TFVC Questo permette di continuare ad usare il centralizzato mentre in locale si usa Git Alcuni membri del team diventano familiari con Git Si verifica esattamente come l’importazione si comporta con git (grandezza cartella etc) Migrazione meno distruttiva Quando si effettua la migrazione definitiva il team è più esperto e preparato
  • 14. Work Item API per associazione al codice Grazie alle api è possibile andare ad esaminare I commenti in Git al fine di ricreare l’associazione con il codice migrato. L’associazione è idempotente, perchè semplicemente crea un link solamente se non esistente.