Vor 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 |