2011-01-14 3 views
0

Wie forme ich ein sich ständig weiterentwickelndes Projekt für die Anpassung an einen bestimmten Kunden, während ich kontinuierlich Verbesserungen aus dem Hauptbereich heraushole, ohne meine Anpassungen zu verlieren?Stammrevisionen mit gabelförmigem Hg-Projekt integrieren

Sollte ich einfach weiter aus dem Haupt-Repository ziehen, entsprechende Änderungen zusammenführen und niemals zurückdrängen?

Ich habe Mercurial nicht lange verwendet, daher mache ich mir Gedanken über die Integration der beiden Projekte, ohne dass geänderte Namespaces und andere Domänen (Client) -Logik durcheinander gebracht werden.


Update: Es sieht aus wie getrennte Repositories, die aus einem Haupt-Repository ziehen ist der Weg zu gehen.

Antwort

0

Die Art und Weise Sie es verwenden:

Sollte ich gerade aus dem Haupt-Repository ziehen, entsprechende Änderungen Zusammenführung und schieben nie zurück?

ist genau meine bevorzugte Art, dies zu handhaben. Jede Änderung, die für mehrere Kunden gilt, wird im Hauptrepo durchgeführt und in die Kundenrepositionen übernommen. Alle Änderungen pro Kunde werden im Kundenrepo durchgeführt und nicht an main zurückgegeben.

+0

Wie gehen Sie mit geänderten Namespaces um? Ich habe ein Projekt mit einem Firmennamen als Root-Namespace entwickelt und möchte es nun verallgemeinern. Wenn ich es ändere, wird das nicht meine ganzen Züge durcheinander bringen? –

+0

Nur neugierig. Warum bevorzugen Sie separate Repos und nicht die genannten Kundenzweige? Ich habe festgestellt, dass die mehreren Repos eher ein Schmerz sind, als dass es Kundenzweige gibt, aber vielleicht fehlt mir etwas. –

+1

Als ich mit Mercurial begann, waren die benannten Zweige neu und nicht oft zu empfehlen. Ich mag immer noch nicht, dass benannte Zweige niemals gelöscht werden können. Separate Repos funktionieren gut für mich, weil keines meiner Tools absolute Pfade zu Projektdateien oder etwas Ähnliches speichert - ich verstehe, dass einige IDEs separate Repos stören und ich mag es nicht, einen permanenten Namen für etwas zu wählen . Lesezeichen sind wahrscheinlich der beste Kompromiss zwischen den beiden und ab 1.6 sind sie drückbar. Steve Losh hat die beste Zusammenfassung von allem http://stevelosh.com/blog/2009/08/a-guide-to-branching-in-mercurial –

0

Wir verwenden named branches. Erstellen Sie eine Verzweigung aus dem Standard mit den Anpassungen und fügen Sie die Änderungen nach Bedarf in den benannten Zweig ein.