Nastavení Visual Studio diff merge toolu pro práci s Gitem

Miroslav Holec

Miroslav Holec

Publikován 11. srpna 2015 , aktualizace: 29. března 2016 | Devtips

Tento článek je starší 18 měsíců a je proto možné, že popisuje postupy nebo technologie, které v uplynulé době mohly doznat výraznějších změn. Názory a myšlenky v tomto článku již nemusí vyjadřovat současné stanovisko autora nebo autorů. Článek byl napsán 11. srpna 2015.

Vývojáři na platformě .NET jsou zvyklí na excelentní mergovací nástroj Visual Studia. Ten nabízí přehledné vizuální rozhraní pro porovnávání a mergování různých typů souborů. Ne každého ale napadne, že tento nástroj je možné používat i v souvislosti s SVN nebo Gitem.

.NET Core

Nová podzimní školení .NET Core a Entity Framework Core

Chcete se dozvědět o novinkách v moderním vývojářském stacku (ASP).NET Core a Entity Framework Core? Připravil jsem krátká úderná školení, ve kterých se zaměřím na nové aspekty těchto technologií. Žádná omáčka a žádné opáčko toho, co už znáte. Prostě jen to nové.

TFVS, TFS a VS Online

Microsoft má vlastní centralizovaný source control, nazvaný Team Foundation Version Control (často označovaný chybně jako TFS), který je následovníkem staršího systému Visual SourceSafe. TFVS je nasazen a dostupný buď skrze on-premises TFS (Team Foundation Server) nebo skrze službu Visual Studio Online.

Hodí se ještě dodat, že TFS / Visual Studio Online není pouze verzovací systém ale komplexní platforma pro pro koordinaci vývoje pokrývající výraznou část vývojového procesu. Mezi další součásti TFS patří například agilní release management projektů nebo nástroje pro podporu continuous integration.

Git

TFS / VS Online nabízí možnost správy zdrojových kódů a to buď formou centralizovaného systému (tedy TFVS) nebo distribuovaného verzování pomocí Gitu. Poslední dobou Microsoft klade důraz právě na Git, o čemž svědčí například:

  • mnohem lepší podpora Gitu ve Visual Studiu 2015,
  • pomalá smrt CodePlex a přesun MS repozitářů na GitHub,
  • nástroj GitHub for Visual Studio,
  • rozhodnutí mít Git jako výchozí verzovací systém ve VS Code

Vše dává smysl v souvislosti s otevřením platformy .NET pro "konkurenční" prostředí. Více k oběma tématům jsem psal v minulých článcích:

Nastavení

Pro nastavení VsDiffMerge jako výchozího nástroje pro merge a diff je nutné aktualizovat globální .gitconfig soubor, který se nachází na cestě:

C:\Users\{USERNAME}\.gitconfig

Pokud soubor neexistuje, je možné ho založit. Dále je potřeba najít umístění nástroje VsDiffMerge.exe. Zpravidla lze vycházet z cesty:

C:\Program Files (x86)\Microsoft Visual Studio {VERZE_VS}\Common7\IDE\vsDiffMerge.exe

Aktualizovaný obsah souboru .gitconfig by měl obsahovat následující sekce:

[merge]
	tool = vsdiffmerge
[diff]
	guitool = vsdiffmerge
[mergetool "vsdiffmerge"]
	cmd = \"C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\Common7\\IDE\\vsDiffMerge.exe\" \"$REMOTE\" \"$LOCAL\" \"$BASE\" \"$MERGED\" //m
	keepbackup = false
	trustexistcode = true
[difftool]
	prompt = true
[difftool "vsdiffmerge"]
	cmd = \"C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\Common7\\IDE\\vsDiffMerge.exe\" \"$LOCAL\" \"$REMOTE\" //t
	keepbackup = false
	trustexistcode = true

Po úspěšné aktualizaci souboru začne Visual Studio otevírat v případě konfliktů VsDiffMerge.

Pozn.: v minulosti se pro tento účel používalo spouštění přímo devenv.exe a na první pohled vývojáře napadne, že se VsDiffMerge spustí asi jako nezávislý nástroj. Bohužel VsDiffMerge se spouští vždy v rámci Visual Studia. Proto není z mého pohledu toto řešení vhodné pro případy, kdy vývojář pracuje výhradně s Git Bashem a očekává rychlé zobrazení merge toolu.

Zeptejte se


Školení webového vývoje

Krátká a úderná školení zaměřená na skutečné novinky ve světě webového vývoje.

DatumNázev školeníMístoDélkaCenaStav
08.10.2018Infrastruktura ASP.NET CorePraha3 h.1 500 KčVolná místana registraci ⇒
08.10.2018Úvod do Entity Framework CorePraha4 h.1 900 KčVolná místana registraci ⇒
09.10.2018RESTful Web API s ASP.NET Core MVCPraha3 h.1 500 KčVolná místana registraci ⇒
09.10.2018Diagnostika aplikací s App insightsPraha4 h.1 900 KčVolná místana registraci ⇒

HOLEC, Miroslav. Nastavení Visual Studio diff merge toolu pro práci s Gitem. Azure & ASP.NET Core Blog [online]. Praha: Miroslav Holec, ©2010-2015. Poslední změna článku 29.3.2016 [vid. 2018-09-19]. Dostupné z: https://www.miroslavholec.cz/blog/nastaveni-visual-studio-diff-merge-toolu-pro-praci-s-gitem