2010-11-30 4 views
1

Ich hatte auf Ubuntu Server 10.04 aufgerüstet - aber es entfernte SVK, die ich für verteilte-vc-Bedürfnisse verwendet hatte, da viele meiner alten Projekte noch in selbst gehosteten Subversion-Repositories auf verschiedenen Servern verpackt waren. Dies funktionierte vorläufig zwischen meinen verschiedenen Systemen. Ich beschloss, auf Bazaar zu migrieren, was ich bereits in neueren Projekten evaluierte.Wie kann ich neue zuvor nicht festgeschriebene Änderungen aus einem früheren Subversion-Arbeitsverzeichnis in ein neu importiertes Bazaar-Repository zusammenführen?

ich die bzr-svn Plugin installiert haben die Verwendung von SVN-Import zu ermöglichen - und erfolgreich Repositories in/var/BZR/repos/wo alle Projekte eingerichtet wurden in ihren eigenen Satz importiert (mit das automatisch erkannte trunk2-Layout). bzr log bestätigt die erfolgreiche Einfuhr aller Projekte.

Leider haben einige meiner Projekte einige nicht festgeschriebene Änderungen in einem Arbeitsordner - diese möchte ich zurück in die zentrale /var/bzr/repos/Projektname Repository. Ich möchte, dass es sich um neue Revisionen über die neu importierten Repositories handelt.

Wie soll ich darüber gehen?

Diese Arbeitsordner sind also/var/www/Projektname/htdocs - einige auf dem Entwicklungsserver sind, und einige sind auf einem Windows-Laptop

(der Basar und Subversion bereits installiert hat)

Ich habe versucht, läuft bzr init und bzr merge file: // var/bzr/repos/projectname/trunk - dies erzeugt eine große Anzahl von Konflikten; alternativ habe ich es versucht: bzr init; bzr add und bzr fusionieren.

In jedem Fall habe ich versucht, die neu erzeugten Dateien aus dem Zusammenführen - und Umbenennen .Moved-Dateien zurück zu löschen und zu committieren - dies bewirkt, dass die Revisionsnummern von 1 beginnen und rückwärts bis -301 laufen. Ein anderes Ergebnis war der vollständige Verlust des Protokollverlaufs, als ich versuchte, lokal festgeschriebene Änderungen wieder "bzr" zu machen. Glücklicherweise konnte ich das Repository jedes Mal von der ursprünglichen Subversion-Quelle zurücksetzen und erneut importieren.

Die lange Route wäre einfach zu verzweigen/Checkout in einen neuen Ordner, und diff/redo die neuen Änderungen über, aber ich möchte vermeiden, Änderungen neu zu erfassen oder eine kdiff-Verzeichnis-Merge-Operation.

Das gewünschte Ergebnis wäre, dass die neuen Änderungen auf den zentralen Zweig/var/bzr/repos/projectname angewendet werden, während die Revisionsnummern und das Protokoll beibehalten werden.

Antwort

0

Wenn ich richtig verstehe, würde ich: kopieren Sie die .bzr dir aus der Branche, die Sie die anderen Änderungen auf (Mainline/Main) in die Arbeitsverzeichnis mit den anderen Änderungen basieren soll. Dann können Sie eine bzr-Commit in dort tun und schieben Sie es auf Ihre Haupt-/Hauptzweig. Wiederholen Sie dies für jeden Arbeitsbaum mit nicht festgeschriebenen Änderungen.

+0

Ich habe dies auf den Arbeitskopien auf dem Server versucht - und das scheint recht gut zu funktionieren. Es ist etwas schwieriger, auf dem Laptop zu erreichen, aber vermutlich, wenn ich SFTP-Zugang zum Hauptzweig habe, sollte dies möglich sein. – Fai

0

Wenn Sie nicht für das bzr-Repository festgelegt haben, können Sie im Arbeitsordner svn festschreiben (also diese Änderungen im SVN-Repository vornehmen) und den Vorgang svn-import mit Bazaar wiederholen. Es werden nur die fehlenden Revisionen hinzugefügt.

+0

Das SVN-Repository (oder besser: svk) verfügt nicht über die erforderlichen Metadaten, um das Commit zu ermöglichen, da das Server-Upgrade SVK entfernt hat. Danke für den Vorschlag. – Fai

+0

Dann können Sie eine Patch-Datei aus dem SVN-Arbeitsbaum erstellen und sie auf den bzr-Zweig mit "bzr patch" anwenden – Federico

Verwandte Themen