2009-05-05 16 views
2

Ich habe Darcs vor ein paar Tagen installiert und habe Zweifel. Ich bin der einzige Programmierer und ich arbeite normalerweise an zwei oder drei Instanzen der Anwendung und mache neue Funktionen. Die Probleme kamen, weil diese Instanzen die gleiche Quellcodedatei modifizieren, also wenn ich sie beende und an das Hauptrepository sende, machen sie einen Konflikt. Gibt es eine Möglichkeit, damit umzugehen? Kann ich dieselbe Datei in mehreren Instanzen schreiben, ohne einen Konflikt zu verursachen, wenn ich zum Hauptrepository schiebe? dankeDarcs Konflikte

Antwort

5

Zuerst, wenn Änderungen an verschiedenen Stellen der Datei auftritt, gibt es in der Regel keine Konflikte beim Zusammenführen. Wenn zwei Patches ohne Konflikte zusammengeführt werden können, sagt man, dass sie pendeln. In Ihrem Fall passiert es, dass Sie den gleichen Teil der Datei in zwei verschiedenen Zweigen geändert haben. In diesem Fall erlauben es die Darcs nicht, den zweiten Patch, der den Konflikt verursacht, "zu pushen".

Es gibt zwei Möglichkeiten, ein solches Problem zu lösen, aber Sie müssen die beiden Patches lokal zusammenführen, um den Konflikt in Ihrem Arbeitsrepo zu beheben. Ziehen Sie dazu die Patches aus dem Haupt-Repository. Dann müssen Sie die beleidigte Datei bearbeiten und den Konflikt lösen.

Der erste Weg ist einfach und die bevorzugte Lösung, Sie müssen den Patch, der sich noch nicht im Haupt-Repository befindet, "ändern" (schauen Sie sich die Verwendung des Befehls "darcs after-record" an).

Die andere Lösung besteht darin, einen Auflösungspatch aufzuzeichnen, indem "darcs record" aufgerufen wird und dann sowohl der in Konflikt stehende Patch als auch der Auflösungspatch gedrückt werden. Diese Lösung neigt dazu, die Historie zu komplizieren und kann einige spätere Operationen länger machen. Wenn die Verzweigung jedoch stark verteilt wurde, wird diese Lösung benötigt.