Frage

kann dies eine naive Frage, aber, wie es in dem Objekt gefragt, was ist der eigentliche Weg durch Versionierung Software verwendet, um einen Zweig zurück in den Hauptstamm zu verschmelzen, ohne gebrochenen Code zu erzeugen?

Hier ist ein kurzes Beispiel: Ich mache einen Zweig aus dem Hauptstamm für das Programm „Hallo Welt Power Edition“. Ich füge Unterstützung für Klingonisch. Dies ist eine radikale Veränderung, die die Art und Weise ändert sich die Funktion printHelloWorld () funktioniert.

Inzwischen wegen Bug # 749, dass Ursache "Hallo Welt" zu "Helo World" geschrieben werden, die Funktion printHelloWorld () im Hauptstamm wird geändert.

Nun, das Problem, das ich hier sehe, ist: wenn ich von Zweig zurück zum Hauptstamm fusionieren experimentiere ich einen Zusammenstoß in der Funktion printHelloWorld () in der Datei sayHello.py

Wie funktioniert ein VCS-Programm wissen, wie die Klingon Unterstützung von meiner Zweig hinzuzufügen und hält die Bug-Fix im Hauptstamm? Was sind die Menschen getrieben oder Software-Driven-Strategien dies zu vermeiden?

Vielen Dank im Voraus.

War es hilfreich?

Lösung

  

Wie funktioniert ein VCS-Programm wissen, wie man hinzufügen   die Klingone Unterstützung von meiner Niederlassung und   hält den Bug fix im Hauptstamm?

VCS weiß nichts über semantische des Quellcodes, damit sie als ein Bündel von Text / Binär-Dateien sieht. VCS-System verwendet diff / Algorithmen verschmelzen Konflikte zwischen Ihnen und Version aktuelle Datei zu erfassen. Es ist Ihre Verantwortung, solche Konflikte zu lösen, da nur Sie semantische diese Veränderungen kennen. Einige VCSs wie SVN würden Sie benötigen, um Ihre Arbeitskopie mit dem neuesten Änderungen vom Stamm zu aktualisieren, bevor mit dem Sie Änderungen zu übernehmen, um sicherzustellen, dass nichts verloren geht.

Um sicherzustellen, dass Sie nichts zerstört haben und alle vorherigen Fehlerkorrekturen wurden nicht gebrochen sollten Sie Code-Reviews , Unit-Tests und andere Praktiken. Continuous Integration ist ein guter Weg, um Software gesund zu halten.

Andere Tipps

In einem solchen Fall das Versionskontrollsystem nicht automatisch zusammenführen, müssen Sie von Hand die Zusammenführung tun. Gute Unit-Tests helfen Ihnen, um sicherzustellen, dass keine Funktionalität verloren.

Bevor Sie Ihren Zweig mit dem Stamm zusammenführen können, wird das Versionskontrollsystem der Arbeitskopie mit den Veränderungen im Kofferraum aktualisieren, da Sie verzweigt. Es wird nur nicht zulassen, dass Sie ohne dieses Update fusionieren. Dies stellt sicher, Sie alle Fehlerkorrekturen in den Kofferraum bekommen in Ihrem nächsten begehen.

Eine gute Strategie auf einem Zweig für die Arbeit ist zu tragen Änderungen in Stamm in Sie auf sehr regelmäßig verzweigen. Dadurch wird sichergestellt, dass Sie driften nicht zu abgesehen von Stamm, Sie führen Probleme haben, wenn Sie schließlich in den Stamm zurückgehen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top