2009-05-18 12 views
3

Um Doxygen zu lernen, habe ich einen Zweig erstellt und die Quelldateikommentare eines sich langsam bewegenden Projekts geändert. Allerdings hat dass Projekt, da große Veränderungen hatten, eine große Datei in mehrere kleinere Dateien aufteilen:Tipps zum Zusammenführen großer Änderungen zwischen Zweigen

big_file.c -> big_file.c file_a.[ch] file_b.[ch] 

ich das gleiche auf meinem Zweig tun wollen. Natürlich kann ich duplizieren meine Filiale large_file.c als file_a. [Ch], etc. und fusionieren von Hand, Löschen der irrelevanten Teile. Allerdings habe ich mich gefragt, ob es weniger fehleranfällige Möglichkeiten gab, dies zu tun.

Antwort

0

git merge kann diese Art von Änderungen unter bestimmten Umständen automatisch ausführen. Ich würde vorschlagen, zuerst eine direkte Zusammenführung zu versuchen, bevor Sie etwas Kompliziertes machen.

+0

Ich hatte git Merge versucht. Es werden einige der Änderungen, die an der Datei big_file.c in der Doxygen-Verzweigung vorgenommen wurden, an die neue Datei_a.c weitergegeben, andere werden jedoch gelöscht. Dies ist eine Fehlerquelle; Ich müsste die Kommentare (die über die Quelle verstreut sind und die beim Zusammenführen viel Mismatch verursachen) redoxisieren. – themis

1

Es ist eine Weile her, aber ich habe die Fusion ziemlich schnell, wenn langweilig. Für die Zukunft, folgte das Projekt zwei gute Praktiken:

  • Häufige kleine Commits
  • Nur Spaltung erfolgte, wurden keine neuen Funktionen hinzugefügt

Die erste Veränderung, die ich in meinem Zweig verschmolzen war die Erstellung mehrerer leerer Dateien (file_a. [ch], file_b. [ch]). Einfache Zusammenführung Die zweite Änderung war der Schnitt & Einfügen von Code aus big_file.c und seine Einbindung in file_a. [Ch]. Diese Zusammenführung war einfach, sogar mit einigen Konflikten. In ähnlicher Weise für andere Änderungen, bis der HEAD des Projekts mit sehr wenigen Konflikten in meiner Branche zusammengeführt wurde. Tracking-Änderungen seitdem war trivial.

Verwandte Themen