Frage

bin ich ziemlich verwendet, um, wie in Eclipse zu tun verschmilzt CVS, und ich bin sonst mit der Art und Weise zufrieden, dass beide Subclipse und Subversive Arbeit mit dem SVN-Repository, aber ich bin mir nicht ganz sicher, wie verschmilzt richtig zu machen.

Wenn ich eine Zusammenführung zu tun, so scheint es, zu wollen die fusionierten Dateien in einem separaten Verzeichnis in meinem Projekt zu stecken, anstatt die alten Dateien überschrieben werden, die in der Zusammenführung ersetzt werden soll, wie ich in CVS gewohnt bin.

Die Frage ist nicht besonders entweder Subclipse oder Subversive.

Danke für die Hilfe!

War es hilfreich?

Lösung

Ich würde Ihnen raten nicht von Eclipse-Plugins als primären Zugang zu Subversion zu verwenden versuchen.

Wenn Sie unter Windows entwickeln, ist TortoiseSVN das beste Programm, das ich für Subversion Zugang gesehen haben. Entdecken Sie in das Verzeichnis, von dem Sie fusionieren, direkt darauf klicken und verwenden Sie die Schildkröte SVN Option fusionieren. Unter der Annahme einer nicht-interaktiven Zusammenführung, wenn Sie Konflikte bekommen, müssen Sie durch jede konfliktbehafteten Datei gehen und die Konflikte bearbeiten, bevor sie als aufgelöst markiert. Für diesen Prozess empfehle ich ein Programm namens KDiff3, die Ihre lokale Repository Kopie zeigt (was im .svn vor der Zusammenführung gespeichert wurde), die lokale Kopie (einschließlich allen Änderungen), und die Kopie aus dem Repository kommen, und ermöglichen es Ihnen, leicht sehen (und auch von Hand ändern, wenn nötig) das Ergebnis der Verschmelzung. Es behandelt auch eine Reihe von kleineren Konflikten automatisch.

KDiff3 ist tragbar, TortoiseSVN ist ein Windows-Shell-Erweiterung, so dass, wenn Sie eine andere Umgebung verwenden, würde ich versuchen, nur SVN zu verwenden, zu fusionieren. Aber das wäre viel mehr Schmerz:)

Andere Tipps

einen ganzen Zweig in den Stamm Merging

  1. Zweigprojekt Geschichte überprüfen Sie die Version zu bestimmen, von dem die Verzweigung genommen wurde

    • von Eclipse-Team „History“ zeigt nur die letzten 25 Versionen, so dass Sie auf die Schaltfläche in dieser Ansicht mit „Alle anzeigen“
    • müssen klicken
    • , wenn Sie „Alle anzeigen“ sagen, es wird Sie wieder über die Niederlassung Datum und zeigen Ihnen die ganze Geschichte für Stamm als auch, so dass Sie für Ihren Kommentar suchen werde, wo man verzweigte
    • Hinweis : Wenn Sie Tortise SVN für die gleiche Aufgabe verwenden (zum Zweig navigieren und wählen Sie „Show Log“) es wird Ihnen zeigen, nur mit dem Zweigverlauf, so dass Sie genau sagen kann, wo der Zweig begann
  2. So, jetzt weiß ich, dass 82517 die erste Version ID der Branche Geschichte war. Also alle Versionen der Branche Vergangenheit 82.517 haben Veränderungen, die ich in den Stamm zusammenführen möchten

  3. Nun zum "Stamm" Projekt in Ihrem Eclipse-Workspace gehen und wählen Sie "Rechtsklick - Team - Merge"

  4. Die Standardansicht ist die 1 url merge

    • wählen Sie die URL der Branche, von dem Sie verschmelzen
    • unter Revisions wählen Sie "Alle"
    • drücken Sie OK
  5. Sie werden auf die „Team synchronisieren“ Perspektive nehmen (wenn es Sie nicht, dass es selbst gehen sollen), um Konflikte zu lösen (siehe unten)

Re-Merging mehr Zweig Änderungen in dem Stamm

  1. Insepct der Geschichte Stamm Projekt das letzte Mal in den Stamm zu bestimmen verschmolzen (Sie dies bemerkt haben sollte)

    • für die Zwecke des Beweises sich diese Version sagen war 82517
  2. So, jetzt weiß ich, dass jede Version von mehr als 82.517 in der Branche zusammengeführt werden muss, in trunk

  3. Nun zum "Stamm" Projekt in Ihrem Eclipse-Workspace gehen und wählen Sie "Rechtsklick - Team - Merge"

  4. Die Standardansicht ist die 1 url merge

    • wählen Sie die URL der Branche, von dem Sie verschmelzen
    • unter Revisionen „Revisionen“ Optionsfeld und klicken Sie auf „Durchsuchen“
    • dies wird eine Liste der letzten 25 Zweigrevisionen öffnen
    • wählen Sie alle Revisionen mit einer Anzahl von mehr als 82517
    • drücken Sie OK (Sie können die Revisionsliste in das Eingabefeld sollte neben dem Radio-Button)
    • drücken Sie OK
  5. Sie werden auf die „Team synchronisieren“ Perspektive nehmen (wenn es Sie nicht, dass es selbst gehen sollen), um Konflikte zu lösen (siehe unten)

Konflikte lösen

  1. Sie im "Team synchronisieren" Perspektive sein sollten. Dies wird wie eine normale Synchronisation sucht Zwecke zu begehen, wo Sie Dateien sehen, die neue und Dateien sind, die Konflikte haben.

  2. Für jede Datei, in der Sie einen Konflikt sehen wählen „Rechtsklick - Bearbeiten Konflikte“ (nicht doppelt so hoch auf die Datei klicken, wird der Unterschied Version Werkzeug begehen bringen, ist dies ganz anders ist)

    • , wenn Sie Sachen sehen wie „<<<<<<< .working“ oder „>>>>>>> .merge-right.r84513“ dann sind Sie im falschen Editiermodus
    • sind
  3. , wenn Sie in dieser Datei alle Konflikte gelöst haben, sagen Sie die Datei auf „Marke als fusionierte“

  4. , wenn alle Dateien sind frei von Konflikten können Sie Ihr Eclipse-Projekt synchronisieren und die Dateien in SVN

  5. commit

ich austesten typischerweise sowohl Zweige und dann die miteinander vergleichen Option verwenden, die aus den beiden Quellbäume vergleichen eine synchr wie der Fall ist. Nachdem Sie die Änderungen in einem Zweig zu integrieren, können Sie in das Repository recommit zurück.

Mit Eclipse-Integration, funktioniert es völlig in Ordnung.

Die wichtigste Änderung von CVS, ist, dass Sie nur Deltas von einem Zweig, dh Änderungen von einer Revision in einer anderen übergehen. Das heißt Sie die richtige Start Revision irgendwie zu verfolgen haben (es sei denn, Sie haben 1,5 merge Geschichte SVN)

Wenn Sie das richtig verstanden haben, ist es nur an Sie, die Änderungen richtig zu machen mit dem Vergleichseditor.

Erstens, wenn Sie „>>>>>“ und so in Ihren Dateien sehen, wenn Sie sie in Eclipse zu sehen, bedeutet dies wahrscheinlich, dass Sie nicht mit dem richtigen Vergleich Editor in der Datei suchen. Versuchen Sie einen Rechtsklick auf die Datei in der Projektansicht oder Ansicht Synchronisieren und „Edit Konflikte“ bringen einen Vergleich Editor auswählen, die Sie die widerstreitenden Regionen zeigt grafisch und nicht als Text. Beachten Sie, dass die Vergleichs-Editor, der für „Edit Konflikte“ kommt unterscheidet sich von dem eines, das Sie erhalten, wenn Sie nur auf eine Datei doppelklicken, in der Ansicht synchronisieren - das doublieclick Editor vergleichen zeigt die Unterschiede zwischen der aktuellen Datei und die Art und Weise es existierte wenn Sie überprüft es zuletzt aus oder aktualisiert, während die Bearbeitungskonflikte vergleichen Dialog die Unterschiede zwischen zwei Quellen von Veränderungen zeigt (zum Beispiel die Änderungen, die Sie im Vergleich zu den Änderungen zusammengefasst, die in Ihrem Arbeitsbereich existiert, bevor Sie verschmolzen).

Zweitens kann man bewusst ein Fehler in einigen Versionen der Eclipse-Plugin subversiv sein will, die alle Dateien verursacht, die merge Änderungen akzeptierten fälschlicherweise als mit Konflikten geprägt. Dieser Fehler wurde behoben, aber eine Menge Leute scheinen nicht aktualisiert zu haben, um noch das Update zu erhalten. Weitere Informationen hier:

https://bugs.eclipse.org/bugs/show_bug.cgi? id = 312585

Beachten Sie, dass mit svn einen modifizierten Baum in einen sauberen Zustand zurückkehrt ist ziemlich einfach. haben einfach einen sauberen Arbeitsbereich auf dem Zielzweig merge und das Merge-Befehl ausführen, um die Änderungen aus dem Einmischquelle Zweig zu importieren, dann Ihren Arbeitsbereich synchronisieren, und Sie werden Ihre übliche Eclipse Vergleichsfenster zeigt alle merge geänderten Dateien und die Konflikte zu bekommen.

Wenn Sie aus irgendeinem Grund nicht die Konflikte lösen, die Sie auf dem Projekt SVN zurückkehren können und wieder in einen sauberen Zustand gehen, sonst hat man die Zusammenführung an Ort und Stelle zu tun und wenn Sie fertig sind, können Sie begehen. Beachten Sie, dass Sie müssen nicht begehen, wenn Sie die Konflikte fertig sind Umgang mit Ihnen auch auf die dev Ansicht zurückkehren können, stellen Sie sicher, dass der Code kompiliert, führen Sie Ihre Unit-Tests, was auch immer und dann erneut synchronisieren und commit (sobald der Konflikt lokal sind aufgelöst werden sie nicht zurückkommen)

letztes Mal, als ich sah, wenn Sie subclipse merge-Befehl verwenden, wird es die zusammengefügte Datei überschreibt (Konfliktmarken mit widersprüchlichen Bereiche zeigen) und setzen Sie die ursprüngliche linke und rechte Seite der Zusammenführung in der gleichen Stelle. es soll nichts in verschiedenen Verzeichnissen setzen.

Als Faustregel ist es am besten, alle Änderungen in einer einzigen verschmelzen zu begehen zu begehen und nur im verpflichten, die merge Änderungen haben, so dass Sie später die Zusammenführung Rollback kann, wenn nötig.

openCollabNet des Merge-Tool für subclipse ist recht ordentlich. Es gibt viele Verschmelzen Arten und die Verschmelzung ich nur mit ihm durchgeführt, wenn sich nahtlos. Ich empfehle es.

Die eine Sache, die Ansicht in Eclipse syncrhonize fehlt, ist der Check-in-Fähigkeit. In Team-Synchronisation Ansicht kann ich all meine Änderungen anzeigen und Konflikte lösen, so wäre es eher intuitiv sein Recht, dort zu Check-in anstatt auf Java-Ansicht zurück und tut Check-in.

ich hier gelandet, weil ich nach einem Weg suchte in einem externen Merge-Editor (kdiff3) zu fusionieren, aber die Zusammenführung von Eclipse starten. Ich war nicht zufrieden mit den Antworten oben zur Verfügung gestellt. So, hier ist ho zu konfigurieren kdiff3 als merge und diff-Editor für SVN in Eclipse:

go

Windows -> Einstellungen → Team -> SVN -> Diff-Viewer Hinzufügen einer neuen Konfiguration (Add-Taste): Erweiterung oder MIME-Typ: * - wenn Sie es wünschen Sie verschiedenen MIME-Typen für verschiedene Editoren angeben können, brauche ich nicht, dass damit der alquantor

.

Diff : Programmpfad C: \ Programme \ KDiff3 \ kdiff3.exe (. Oder wo auch immer Sie Ihren Merge-Editor haben - sry für den Windows-Pfad, können Sie eine Linux-Version in den Kommentaren hinzuzufügen oder diese Antwort bearbeiten)

Argumente: $ {Base} $ {Mine} $ {ihre}

Merge : Programmpfad C: \ Programme \ KDiff3 \ kdiff3.exe

Argumente: $ {Base} $ {Mine} $ {ihren} -o $ {fusioniert}

Dies wird wahrscheinlich für so gut funktionieren, andere Editoren fusionieren, aber mit einer anderen Argumente Syntax (es herauszufinden, ein lassen Sie uns wissen :)).

Die Nutzung ist wie üblich (team-> bearbeiten Konflikte) für die Zusammenführung und Vergleichs-> foo für die diff Ansicht.

Prost

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top