Sven Hubert ist Senior Software Consultant, und MVP (Microsoft Most Valuable Professional) für das Visual Studio 2010 und Projektleiter bei der AIT und hat sich den agilen Prozessen wie z.B. Scrum verschrieben.
Sven Hubert
Alternative Diff/Merge-Tools für den Team Explorer
Mittwoch, 30. September 2009Vor allem frühere Nutzer von Visual SourceSafe arbeiten im Team Foundation Server immernoch mit exklusiven Checkouts. Das bedeutet, dass ständig die für eine dringende Änderung zu bearbeitende Datei von einem anderen Benutzer blockiert ist. Viele Nutzer haben mit dem Merge von konkurrierend ausgecheckten Dateien schlechte Erfahrungen gemacht. Teilweise mag das am Vergleichs- und Mergewerkzeug liegen, welches der Team Explorer mitbringt. Was viele nicht wissen, Sie können diese Werkzeuge sehr einfach ersetzen und Ihren eigenen Vorlieben entsprechend anpassen. Im folgenden sollen die Alternativen aufgelistet werden.
Im Visual Studio 2008 finden Sie die Einstellungen unter Tools –> Options –> Source Control –> Visual Studio Team Foundation Server. Über einen Klick auf den Button “Configure User Tools…” können Sie für das Vergleichen und Mergen je nach Dateityp verschiedene Programme hinterlegen. So z.B. meinen persönlichen Favorit von SourceGear:
Die verschiedenen Parameter haben folgende Bedeutung:
- %1 = Original file (in diff, the pre-changes file, in merge, the "server" or "theirs" file, the file that is the base file after "their" changes were applied)
- %2 = Modified file (in diff, the post-changes file, in merge the "yours" file – the base file with "your" changes applied)
- %3 = Base file (in the 3-way merge operation, the file which both "theirs" and "yours" are derived from – the common ancestor. This doesn’t mean it’s the version the changes were based from, since this may be a cherry-pick merge)
- %4 = Merged file (The output file for the merge operation – the filename that the merge tool should write to)
- %5 = Diff options (any additional command-line options you want to pass to your diff tool – this comes into play only when using "tf diff /options" from the command-line)
- %6 = Original file label (The label for the %1 file)
- %7 = Modified file label (The label for the %2 file)
- %8 = Base file label (The label for the %3 file)
- %9 = Merged file label (The label for the %4 file)
Hier eine Auswahl gängiger Werkzeuge zum Vergleichen und Mergen (Quelle: http://blogs.msdn.com/jmanning/articles/535573.aspx):
Compare tools
| Product | Command | Arguments |
| TFS default | diffmerge.exe | %1 %2 %6 %7 %5 /ignorespace |
| WinDiff | windiff.exe | %1 %2 |
| DiffDoc (for Word files) | DiffDoc.exe | /M%1 /S%2 |
| WinMerge | winmerge.exe | /ub /dl %6 /dr %7 %1 %2 |
| Beyond Compare 2 | bc2.exe | %1 %2 /title1=%6 /title2=%7 |
| Beyond Compare 3 | BComp.exe | %1 %2 /title1=%6 /title2=%7 |
| Araxis | compare.exe | /wait /2 /title1:%6 /title2:%7 %1 %2 |
| Compare It! | Wincmp3.exe | %1 /=%6 %2 /=%7 |
| SourceGear DiffMerge | DiffMerge.exe | /title1=%6 /title2=%7 %1 %2 |
| KDiff3 | kdiff3.exe | %1 –fname %6 %2 –fname %7 |
| TortoiseMerge | TortoiseMerge.exe | /base:%1 /mine:%2 /basename:%6 /minename:%7 |
| Visual SlickEdit | win\vsdiff.exe | %1 %2 |
Merge tools
| Product | Command | Arguments |
| TFS default | diffmerge.exe | /merge %1 %2 %3 %4 %6 %7 |
| KDiff3 | kdiff3.exe | %3 –fname %8 %2 –fname %7 %1 –fname %6 -o %4 |
| Visual SourceSafe | ssexp.exe | /merge %1 %2 %3 %4 %6 %7 |
| Araxis | compare.exe | /wait /swap /a3 /3 /title1:%6 /title2:%7 /title3:%8 %1 %2 %3 %4 |
| Beyond Compare 2 | BC2.exe | %1 %2 /savetarget=%4 /title1=%6 /title2=%7 |
| Beyond Compare 3 | BComp.exe | %1 %2 %3 %4 /title1=%6 /title2=%7 /title3=%8 /title4=%9 |
| Guiffy | guiffy.exe | -s -h1%6 -h2%7 -hm%9 %1 %2 %3 %4 |
| Ellie Computing | guimerge.exe | –mode=merge3 %3 %1 %2 –to=%4 –title0=%8 –title1=%6 –title2=%7 –to-title=%9 |
| SourceGear DiffMerge | DiffMerge.exe | /title1=%6 /title2=%8 /title3=%7 /result=%4 %1 %3 %2 |
| WinMerge (2-way merge) | winmerge.exe | /ub /dl %6 /dr %7 %1 %2 %4 |
| TortoiseMerge | TortoiseMerge.exe | /base:%3 /mine:%2 /theirs:%1 /basename:%8 /minename:%7 /theirsname:%6 /merged:%4 /mergedname:%9 |
| Visual SlickEdit | win\vsmerge.exe | %3 %1 %2 %4 |
Benötigen Sie Unterstützung bei der Software-Entwicklung und Architektur von .NET basierten Lösungen oder bei Einführung und Anpassung von Visual Studio 2010 / Microsoft Test Manager 2010 / Team Foundation Server 2010?
Wir stehen Ihnen über info(at)aitgmbh.de gerne zur Verfügung.
Tags: Source Control, Visual Studio
