Früher habe ich Windows, SVN, Tortoise SVN und Beyond Compare verwendet. Es war eine großartige Kombination für Code-Reviews.
Jetzt benutze ich OSX und Git. Ich habe es geschafft, zusammen mit Gitx und DiffMerge ein Bash-Skript zu erstellen, um eine kaum akzeptable Lösung zu finden.
Ich bin seit über einem Jahr mit diesem und ähnlichen Setup durcheinander. Ich habe auch versucht, den Github Diff Viewer und den Gitx Diff Viewer zu verwenden. Es ist also nicht so, als hätte ich ihnen keine Chance gegeben.
Es gibt so viele kluge Leute, die großartige Sachen mit Git machen. Warum nicht das Side-by-Side-Diff mit der Option, die gesamte Datei anzuzeigen? Bei Leuten, die beide verwendet haben, habe ich noch nie von jemandem gehört, der die einzelne +/- Ansicht besser mag, zumindest für mehr als eine schnelle Überprüfung.
Antworten:
Ich kann hier nicht für Linus sprechen, aber die Art und Weise, wie Git mit Diffe Tools umgeht, ist philosophisch gesehen sehr unixisch. git macht das, was es tut, sehr gut und verwendet externe Tools für alles andere, einschließlich differenzierteres Vergleichen und Zusammenführen.
Ich benutze DiffMerge mit git auch unter OS X und musste nicht auf Bash-Shells zurückgreifen. Es war schwierig, aber ich habe die difftool- und mergetool-Einstellungen von git so konfiguriert, dass DiffMerge direkt aufgerufen wird. Jetzt kann ich Diffs anzeigen und Zusammenführungskonflikte in einem hervorragenden visuellen Drittanbieter-Tool lösen.
Hier ist meine Konfiguration:
quelle
git diff --stat
. Bietet Ihnen eine schöne grafische Auflistung aller geänderten Dateien mit der Anzahl der geänderten Zeilen.Sie werden feststellen, dass SVN selbst auch keine Side-by-Side-Lösung bietet. Was Sie aufgelistet haben, sind Tools von Drittanbietern. Wie bei den meisten Dingen in Git ist dies außerordentlich konfigurierbar und bietet sofort eine hervorragende Werkzeugunterstützung. Hast du ein Mergetool eingerichtet? Wenn nicht, solltest du. Wenn ja, versuchen Sie es
git difftool
. Dann werfen Sie einen Blick auf die Manpage für Konfigurationsoptionen.Ich verwende KDiff3 als mein Mergetool, da es ein nettes, plattformübergreifendes Tool ist und ohne weitere Konfiguration
git difftool
genau das tut, was Sie verlangen.quelle
Das ist die * nix-Philosophie. Viele Leute, die diese Tools verwenden, verbringen viel Zeit im Terminal. Das Terminal erfordert nicht, dass wir unsere Hände von der Tastatur zur Maus bewegen. Ich weiß, dass ich den +/- Stil gegenüber den visuellen Vergleichen / Zusammenführen-Werkzeugen bevorzuge, hauptsächlich, weil mir nur die Unterschiede wichtig sind. Ich interessiere mich für die 3-4 Zeilen um die Änderung und die Änderung selbst. Alles andere sind zusätzliche Informationen, die mir wirklich nicht helfen.
Diffs werden häufig verwendet, um einen schnellen Überblick über die Änderungen zu erhalten. Den Code nicht zu lesen.
Ich habe die visuellen Diff-Tools im Vergleich zum Standard-Diff auf GNU-Systemen noch nie als sehr nützlich empfunden. Alles, was sie mich jemals dazu bringen, ist, mit der Maus herumzuspielen und mich zu zwingen, durch die Datei zu scrollen, ihre Benutzeroberfläche herauszufinden und dann wieder in die Befehlszeile zu gelangen, wo ich etwas gegen ein Problem tun kann, das ich im Diff sehe .
quelle
Aus meiner persönlichen Sicht ist die Antwort meistens, dass Unterschiede so kurz sind, dass es keine Rolle spielt.
Für Codeüberprüfungen verwende ich ein umfassendes Tool zur Codeüberprüfung, mit dem ich alle gewünschten Informationen wie Kommentare, Hervorhebungen der Syntax und die Ansicht nebeneinander abrufen kann.
Ich verwende
git diff
fast ausschließlich beim Staging von Code zum Festschreiben. Wenn das der Fall ist, sind die Unterschiede klein genug und aktuell genug, dass ich den Kontext nicht sehen muss, um mich daran zu erinnern, was los ist.Mein Code-Review-Tool der Wahl Phabricator oder möglicherweise IDE-integrierte Tools, die sprachkontextabhängig sind. Ich denke, der Pull-Request-Flow von Github ist für die Codeüberprüfung schrecklich, hauptsächlich, weil er Unified Diff und nicht Side-by-Side zeigt.
quelle