2009-11-17 10 views
12

Ich habe die Funktion "Patch erstellen" in Eclipse verwendet, um Patches für nicht festgeschriebene Änderungen zu erstellen. Ich suche nach einer Möglichkeit, Patches in Eclipse für Änderungen zu erstellen, die bereits an das VCS übergeben wurden.Ist es möglich, ein Patch in Eclipse aus Änderungen zu erstellen, die bereits festgeschrieben wurden?

Sofern ich etwas nicht verpasst habe, glaube ich nicht, dass dies möglich ist, aber gibt es ein Plugin, das diese Fähigkeit hinzufügt? z.B. Damit können Sie zwei Versionen in der Verlaufsansicht auswählen und ein Patch zwischen ihnen erstellen oder zwei Zweige vergleichen und aus den Ergebnissen in der Ansicht Synchronisieren einen Patch erstellen.

Ich bin froh, solche Patches von der Befehlszeile aus zu erstellen, aber ich suche nach einer Möglichkeit, den Prozess zu rationalisieren/zu integrieren, wenn möglich.

Danke für jede Hilfe.

Update: Wenn irgendwelche Vorschläge für ein bestimmtes Quellcodeverwaltungssystem spezifisch sind, interessiert mich besonders CVS, SVN und Mercurial. Danke noch einmal.

Antwort

8

Mit Subklipse können Sie zwei Revisionen eines Verzeichnisses in der History-Ansicht auswählen, vergleichen und das Patch als einheitliches Diff speichern.

+0

Danke, ich werde das überprüfen. – mikej

+1

Sie verwenden also SVN? Was ist VCS? –

+2

VCS = Versionskontrollsystem, der generische Name für Dinge wie CVS, SVN, etc. –

4

Ich habe einige umfangreiche Recherchen durchgeführt ... und ich habe herausgefunden, dass es keine Möglichkeit gibt, den Eclipse-Vergleichseditor zu verwenden, um eine .patch-Datei basierend auf den Unterschieden im Abschnitt "Local History" zu generieren.

Ich werde eine neue Feature-Anfrage für diese erstellen.

+1

Wie ist das gelaufen? Es ist ärgerlich, "Patch anwenden ..." ohne "Patch erstellen" zu haben. ICH MUSS MEINE ÄNDERUNGEN VERSTECKEN UND ICH HABE KEIN GIT. – badp

+0

Ich erinnere mich nicht, wenn ich jemals durch gefolgt und erstellt, dass hmm war eine Weile zurück –

0

Wie die anderen Antworten, nein, ist es derzeit nicht möglich.

Aber jetzt, hier ist ein manuelle Behelfslösung mit SVN als Beispiel (Ich stelle mir andere VCSs sehr Ähnliche Vergleiche erlauben):

  • einen zweiten Eclipse-Workspace erstellen; Arbeitsbereich 2.
  • Stellen Sie sicher, dass Arbeitsbereich 2 über den richtigen Code für das "Ziel" der Zusammenführung und den ursprünglichen Arbeitsbereich 1 verfügt, über den Code, von dem Sie vergessen haben, einen Patch zu verwenden.
  • Vergleichen Sie Workspace 1 und 2 manuell mit einem Merge-Tool, das Verzeichnisse vergleichen kann (unter Windows mag ich Araxis Merge, aber WinMerge funktioniert auch).
  • Öffnen Sie jede Datei und stellen Sie sicher, dass nur Ihre Änderungen darin enthalten sind. Wenn es andere Änderungen gibt, müssen Sie jede der geänderten Zeilen übernehmen. Wenn sonst niemand die Zieldatei geändert hat, können Sie die gesamte Datei kopieren über.
  • Synchronisieren Sie Workspace 2 (aber checken Sie nicht ein!), Damit Sie die Änderungen sehen können, die Sie jetzt haben.
  • Öffnen Sie "SVN Repository Explorer Perspektive"
  • Rechtsklick auf den Ordner, in dem der Code eingecheckt wurde (etwas unter "Zweige" oder "Stamm" wahrscheinlich) -> "Vergleichen ..." und es sollte haben Sie die Revisionsnummer nur vor Ihr Einchecken ausgefüllt.
  • Sie können jetzt die Änderungen von dem Code, den Sie eincheckten (den Sie vergessen haben, einen Patch von zu nehmen) mit der Version anzeigen, bevor Sie es eingaben.
  • Lassen Sie die Arbeitsbereiche 1 und 2 nebeneinander öffnen und führen Sie jede geänderte Datei visuell aus, um sicherzustellen, dass sie mit 1 übereinstimmt und jetzt in 2 angezeigt wird.

Sehr, sehr langweilig, aber es sollte alle Änderungen übernehmen.

0

Wenn ich das nicht in Eclipse machen konnte (ich musste nur mit CVS arbeiten), habe ich andere Software ausprobiert und festgestellt, dass SmartCVS es kann. Diese Funktion ist jedoch nur in der Pro Paid-Version verfügbar und es dauert ein wenig Zeit (im Vergleich langsam), wenn Sie mehr Code haben.

Ich möchte über einige Open-Source-Software mit dieser Fähigkeit wissen, wenn jemand davon weiß. Danke

4

Ich habe gerade einen Patch SVN nach einem Commit gemacht! :)

  • Geben Sie in "SVN Repository"
  • Gehen Sie auf die Wurzel des Projekts.
  • Klicken Sie auf "Vergleichen"
  • Select "unified diff Ausgabedatei"
  • Klicken Sie auf "Select" und den Namen und den Ort des
  • Klicken Sie auf "Ok"
+0

Dies funktionierte für mich, aber eigentlich war mit der rechten Maustaste auf Verzeichnis, dann "Vergleichen mit ...", dann "Branch/Tag .. . ", dann wählte ich die vorherige Version in meinem Zweig und wählte die Option" Unified diff to output file "aus. – oarevalo

1

Es ist Datei wählen möglich, es mit der Perspektive "SVN Repository Explorer" zu tun.

  • Navigieren Sie zu dem Root-Element Sie (in der Regel der Stamm-Ordner)
  • Show "History-Ansicht" (wenn nicht bereits angezeigt)
  • Wählen Sie zwei Revisionen von "History Ansicht"
  • Rechts vergleichen wollen -Klicken Sie auf eine der beiden Revisionen und wählen Sie im Kontextmenü "Patch erstellen ...".
+0

In welcher Version von Eclipse haben Sie das gemacht? Ich kann die Funktionalität von Kepler nicht finden. – Andrew

+1

@Andrew: Ich benutze derzeit Eclipse Luna und es funktioniert gut. Allerdings habe ich diese Antwort mit einer früheren Version von Eclipse geschrieben. Nicht sicher, ob es Kepler war. Wahrscheinlich Juno. – Jidehem

Verwandte Themen