2009-10-22 10 views
6

Wie behandelt mercurial gespaltene Dateien? Was passiert, wenn ich eine Verzweigung erstelle und eine Datei spalte? Kann ich einfach Änderungen von einem anderen Zweig ziehen, der die ursprüngliche, nicht geteilte Datei ändert?Wie geht Mercurial mit gespaltenen Dateien um?

+1

Was meinst du mit „gesplitteten Dateien“? Meinst du, dass du eine Verzweigung erstellst und dann den Inhalt der Datei in zwei neue Dateien aufteilst? Oder willst du nur die Datei in beiden Zweigen ändern? –

+1

Ich bin in der Programmierung und plane, eine Gottklasse in mehrere kleinere Klassen aufzuteilen. Dies bedeutet, dass ich den Inhalt des Gottes-class-Datei in meinem Zweig in mehrere andere Dateien aufteilen möchten. Ich würde gerne wissen, ob mercurial dann Brocken/Änderungen anwenden kann, die in der ursprünglichen Datei (in der Standardverzweigung), z. eine Funktion, die sich jetzt in einer anderen Datei in meinem Refactoring-Zweig befindet. –

Antwort

2

Nach der Klärung Kommentar zu lesen, ist die Antwort nein. Mercurial verfolgt Dateien, keine Code-Hunks, also kann ich das nicht tun, soweit ich weiß.

7

Ich habe gerade ein kleines Experiment. Ich habe ein Repository (foo) mit einer großen Datei erstellt. Dann geklont ich, dass in bar, verwenden hg cp die Datei in zwei Dateien zu kopieren, und entfernt eine Hälfte in den beiden Dateien. Dann habe ich eine Änderung vorgenommen, die sich auf die gesamte Datei in foo auswirkt, und diese in bar zusammengeführt.

Als Ergebnis wurden die Teile in der jeweiligen geteilten Datei korrekt zusammengeführt, während ich einen Konflikt für die entfernten Teile bekam: meine lokale Version war leer, während die andere Version die Änderung von foo war.

Also, wenn Sie mit der Beseitigung dieser Art von Konflikten jedes Mal, wenn Sie verschmelzen glücklich sind, könnte dies für Sie gut genug sein.