2010-11-24 4 views
0

Ich benutzte SVN/CVS für eine lange Zeit nur als ein Ort, wo mein Code gespeichert ist. Aber jetzt kam ich an einen Punkt, an dem ich einen "besten Weg" brauche.Was ist der beste Weg, um bestimmte Änderungen in mehreren Zweigen und Trunks zusammenzuführen?

Wir haben mehrere Zweige.
Beispiel:

  • Release1 (ausgeliefert),
  • Release2 (nicht fertig, enthält neues Feature),
  • Fix1 (enthält Fehlerkorrekturen für Release1 und wird nach Kundentests versandt werden),
  • Fix2/trunk (Der trunk ist unser aktueller Entwicklungsstand mit Fix2).

Und jetzt kommen wir zu meinem Problem.

kann ich nicht sagen, ob Release 2 vor Fix1 oder Fix2 ausgeliefert wird, und ich habe jetzt ein Hotfix für Release1. Nur ein paar Dateien, aber es war dringend.

Was ist jetzt der beste Weg, um die Änderungen in allen Zweigen zu bekommen?
Die automatische Zusammenführung fügt auch Unterschiede zusammen, die branchenspezifisch sind. Ist der beste Weg, um es von Hand zusammenzuführen?
Es muss einen Weg geben wie: Ich markiere meine Änderung mit der ID "abc" und sagen Sie nur Änderungen von abc in allen Zweigen zusammenführen.

Btw. Ich benutze Eclipse mit Subversive. Vielleicht ist ein Tool außerhalb der Sonnenfinsternis besser !?

+0

Vielleicht http://stackoverflow.com/questions/1645409/svn-how-to-apply-change-made-in-trunk-to-all-branches kann beginnen zu helfen – VonC

+0

Verschmelzen von einem Zweig zu einem anderen ist nicht das Problem. Das Problem ist, dass ich nur einige Änderungen zusammenführen möchte. Beachten Sie folgendes: Sie haben eine alte Version Ihrer Software und verzweigen diese in 2 Filialen für 2 verschiedene Kunden. Jetzt reparieren Sie Ihre alte Version (weil customer3 sie verwendet) und Sie möchten NUR die neuen Änderungen in Ihre 2 Zweige zusammenführen, da die Zweige unterschiedliche Funktionen haben.es ist schwierig, in Englisch zu beschreiben: D – lrxw

Antwort

0

Ich benutze das Subclipse-Plugin für Eclipse. Das kannst du wahrscheinlich auch mit der svn-Befehlszeile machen. Wenn Ihr Fix zu einer einzelnen Revisionsnummer isoliert ist, können Sie nur diese Revision mit dem Trunk (oder einem anderen Zweig) zusammenführen.

  • branch1 (Revision 103) -hotfix
  • Stamm (Revision 100)

Mit Subclipse, können Sie direkt auf die Datei dann "Team" wählen -> "Merge". Wählen Sie entweder die Option "Einen Revisionsbereich zusammenführen" oder "Zwei verschiedene Bäume zusammenführen" und geben Sie dann die Quellen-URL und die Revision an, die mit dem Zielbaum zusammengeführt werden sollen.

von der Kommandozeile ... da Ihr aktuelles Arbeitsverzeichnis der Stamm ist:

svn merge -r 103:103 http://svn/branches/branch1 

Sie wahrscheinlich mehrere Zweige nicht zusammenführen können und das ist wahrscheinlich besser, weil man mit dem Vereinigungsprozess vorsichtig sein will .

+0

Oh, und Sie sollten das Zusammenführen Ergebnis als Commit überprüfen. Mit der Untersicht können Sie auch ein simuliertes Ergebnis des Zusammenführungsprozesses anzeigen, bevor die eigentliche Zusammenführung abgeschlossen ist. – blissfool

Verwandte Themen