Betrachten Sie Konfliktmarkierungen. dh:
<<<<<<< branch
blah blah this
=======
blah blah that
>>>>>>> HEAD
In dem speziellen Fall, der mich veranlasst hat, diese Frage zu stellen, hat das zuständige Teammitglied gerade eine Zusammenführung von Upstream zu unserer Niederlassung durchgeführt und diese in einigen Fällen als Kommentar als eine Art Dokumentation über das, was gerade war, hinterlassen behoben. Er hat es in einem kompilierten Zustand belassen und die Tests bestanden. Es ist also nicht so schlimm, wie man denkt.
Instinktiv nahm ich dies jedoch wirklich in Abrede, aber als Teufel, der sich für mich einsetzt, kann ich sehen, warum er es getan haben könnte:
- weil es anderen Teamentwicklern aufzeigt, was sich durch die Zusammenführung geändert hat.
- weil diejenigen, die mit den einzelnen Codeteilen besser vertraut sind, dann auf die Bedenken eingehen können, die in den Kommentaren verdeutlicht werden, damit er nicht raten muss.
- Da die vorgelagerte Zusammenführung ein Problem darstellt und es schwierig sein kann, die Zeit zu rechtfertigen, in der alles gut und vollständig gelöst werden muss, ist eine halbfertige FIXME-Benachrichtigung erforderlich. Verwenden Sie den ursprünglichen Konflikt als Kommentar, um dies zu dokumentieren.
Mein Einwand war instinktiv, aber ich möchte ihn rational rechtfertigen oder meine Position klüger sehen können. Kann mir jemand einige Beispiele oder sogar Erfahrungen geben, bei denen die Leute eine schlechte Zeit mit jemand anderem hatten und / oder Gründe, warum dies eine schlechte Praxis ist (oder Sie können den Anwalt des Teufels spielen und ihn unterstützen).
Meine unmittelbare Sorge war, dass es eindeutig ärgerlich gewesen wäre, wenn ich eine der betroffenen Dateien bearbeitet, die Änderungen übernommen, echte Konflikte festgestellt, aber auch die kommentierten eingezogen hätte. Dann hätte ich in der Tat eine sehr unordentliche Akte gehabt. Zum Glück ist das nicht passiert.
quelle
// MatrixFrog 10/25/2011: Updated this function to fix bug #1234
. Wenn ich so etwas sehe, denke ich: "Was? Dafürgit blame
ist es da!"Antworten:
Das ist eindeutig falsch. Es ist die Aufgabe des Versionskontrollsystems, Änderungen im Auge zu behalten, und es ist die Aufgabe von Diff-Tools, um anzuzeigen, was sich durch die Zusammenführung geändert hat. Im Festschreibungsprotokoll und möglicherweise im Code sollte ein Kommentar enthalten sein, in dem erläutert wird, was und warum geändert wurde. Allerdings ist es meiner Meinung nach dasselbe, die Konfliktmarkierungen als Kommentare zu belassen, als würde man toten Code herumstehen lassen.
quelle
Ich hatte ein ähnliches Problem damit, dass Code entweder auskommentiert wurde (was in Ihrem Fall ähnlich ist) oder zu einer Methode überging, die eigentlich nirgendwo aufgerufen wurde. Auf die Frage, warum die Leute das tun, antworteten sie, dass sie sich etwas sicherer fühlen, wenn sie noch einen Codeblock in der Nähe haben. Das offensichtlichste Gegenargument ist, dass es sich um einen VCS-Job handelt und nicht um ihren. Es gibt jedoch auch einen anderen Aspekt. Wenn jemand anderes Code liest, während er lernt oder Änderungen vornimmt, wird er wahrscheinlich von einem solchen Kommentar abgelenkt. Er wird es auf jeden Fall lesen und vielleicht einige Zeit damit verbringen, zu verstehen, warum es hier ist und welche mögliche Korrelation es zu seinem aktuellen Job hat. Da ein Konfliktmarker ein Zeichen für einen bereits gelösten Konflikt ist, ist dies mit Sicherheit eine Zeitverschwendung.
quelle
Ich denke, Kommentare sollten sich auf den Code beziehen, der dort vorhanden ist, nicht auf Code, der in der Vergangenheit vorhanden war, noch auf Ereignisse, die mit dem Code in der Vergangenheit passiert sind, oder auf Code, der in einem parallelen Universum (einem anderen Zweig) in der Datenbank vorhanden war Vergangenheit. Wenn Sie die Marker so belassen, wie es Ihr Teammitglied getan hat, treten mindestens drei Probleme auf:
blah blah null
, und im Fehlerbericht stand "Kann dort nicht null verwenden, benutze dies oder das oder was auch immer." Zwei Personen haben den Fehler unabhängig voneinander behoben, und als die Korrekturen zusammengeführt wurden, kam es zu einem Konflikt. Jetzt dokumentiert der Kommentar nicht, was das Problem war oder was der Fix behoben hat, sondern nur, dass es zu irgendeinem Zeitpunkt in der Vergangenheit zwei verschiedene Fixes gab. Das ist nicht sehr hilfreich. Ein Kommentar wie//blah blah needs a non-null argument
würde zumindest einen Hinweis darauf geben, was sich geändert hat (und selbst diese Informationen sind im Commit-Kommentar des Versionskontrollsystems leichter verfügbar).blah blah (this,that)
oder sogar etwas Komplizierteres. In diesem Fall wird das Hinterlassen der Konfliktnachricht als Kommentar sicherlich jeden verwirren, der später versucht, den Code zu lesen.quelle
So nervig.
quelle