Ich bin nicht sicher, ob ich Git vertrauen kann, um automatisch zusammenzuführen. Hier ist ein Szenario.Wie kann ich Git merge vertrauen?
ein Programm im Master erstellen:
MOVE 0 TO I.
A.
PERFORM X-PROC.
IF I IS EQUAL TO 25 THEN GO TO A.
Entwickler 1 macht einen Zweig und stellt fest, dass ein Fehler vorhanden ist: eine Endlosschleife. Er legt es:
MOVE 0 TO I.
A.
ADD 1 TO I.
PERFORM X-PROC.
IF I IS EQUAL TO 25 THEN GO TO A.
Inzwischen Entwickler 2 macht einen Zweig und behebt den Fehler in ihrer eigenen Art und Weise:
MOVE 0 TO I.
A.
PERFORM X-PROC.
ADD 1 TO I.
IF I IS EQUAL TO 25 THEN GO TO A.
Beide Entwickler ihren Code testen und finden es richtig. Beide verschmelzen mit dem Master:
MOVE 0 TO I.
A.
ADD 1 TO I.
PERFORM X-PROC.
ADD 1 TO I.
IF I IS EQUAL TO 25 THEN GO TO A.
Die Endlosschleife ist zurück.
Es scheint mir, dass dieses Problem oft in einer verteilten Entwicklungsumgebung auftreten muss. Als ich das getestet habe, hat Git keinen Merge-Konflikt gemeldet. Manchmal könnte dieses Problem lange unentdeckt bleiben. Ein Regressionstest sollte es finden, aber Regressionstests werden auch in Git zusammengeführt, so dass wir ihnen auch nicht vertrauen können.
Was kann ich dagegen tun? Muss ich nach jedem Zusammenführen einen Code lesen?
Testsuiten/Komponententests sind ein wunderbares Werkzeug, um die Arbeitsbelastung zu reduzieren, wenn Sie gigantische Verschmelzungen haben (die Sie normalerweise nicht haben sollten) - aber fallen Sie nicht in das falsche Gefühl von Sicherheit und vernachlässigen Vernunft-Überprüfung Ihrer Verschmelzungen, nur weil deine Tests alle bestanden haben! –
Eine Technik, die ich verwende, um eine Verschmelzung weniger schmerzhaft zu verifizieren, besteht darin, das Diff einer Verzweigung vor und nach einer Verschmelzung mit einer anderen Verzweigung zu nehmen und dann dieses Diff (unter Verwendung eines Diffing-Programms) mit dem Diff der Änderungen zu vergleichen anderer Zweig. Wenn es keinen Unterschied zwischen den Diffs gibt, kann ich höhere Sicherheit haben, dass die Zusammenführung nicht verpfuscht wurde. –
Danke NevikRehnel und @cupcake - Ich würde alle Strategien von Menschen lieben oder hören, die die Verschmelzung der geistigen Gesundheit überprüfen! –