Wie verschiebe ich eine Datei?

219

Ich verwende TortoiseSVN für das SourceForge SVN-Repository. Ich möchte eine Datei von einem Ordner in einen anderen verschieben, um den Revisionsverlauf beizubehalten. Ist das möglich? Wenn ja, wie machst du das?

(Meine derzeitige Strategie bestand darin, die Datei in den neuen Ordner zu kopieren, einzuchecken und die Datei dann aus dem aktuellen Ordner zu löschen.)

Kerl
quelle

Antworten:

95

Subversion bietet native Unterstützung für das Verschieben von Dateien.

svn move SOURCE DESTINATION

Weitere Informationen finden Sie in der Online-Hilfe (svn help move).

Commodore Jaeger
quelle
Oder anders ausgedrückt: svn move <current path/filename> <destination path/filename>
Joe
313

Siehe Abschnitt 5.14.2. Verschieben von Dateien und Ordnern (oder überprüfen Sie "Verschieben" im Index der Hilfe) der TortoiseSVN-Hilfe. Sie bewegen sich per Rechtszug. Es wird auch erwähnt, dass Sie einen Commit aus dem übergeordneten Ordner durchführen müssen, um eine "One" -Revision durchzuführen. Dies funktioniert für die Änderung in einer Arbeitskopie.

(Beachten Sie, dass die SVN-Elemente im folgenden Bild nur angezeigt werden, wenn der Zielordner bereits zum Repository hinzugefügt wurde.)

Schildkröte bewegen Menü

Sie können den Umzug auch über den Repo-Browser durchführen (Abschnitt 5.23. Der Repository-Browser der Hilfe).

Crashmstr
quelle
Als ich alle meine Dateien mit der rechten Maustaste hervorgehoben habe, wurde das reguläre Windows Explorer-Menü angezeigt. Ich konnte "Verschieben" auswählen, aber es war keine SVN-Option, daher bin ich mir nicht sicher, ob überhaupt etwas passiert ist. Als ich überprüfte, ob Änderungen vorgenommen wurden, wurden 300 Dateien gelöscht und 300 nicht versioniert. Dies scheint nicht richtig zu funktionieren. Ich habe Angst, es zu begehen, ohne zu wissen, ob es so funktionieren soll oder nicht
Joe Phillips
48
Ich habe gerade festgestellt, dass es wahrscheinlich nicht funktioniert hat, weil ich das neue Verzeichnis noch nicht hinzugefügt / festgeschrieben habe
Joe Phillips
Ich weiß, dass dies Jahre später ist - aber Joes Kommentar ist wichtig. Ich hatte auch damit zu kämpfen - ich habe diese kleine Notiz in der Antwort übersehen. Der Zielordner muss unter SVN-Kontrolle stehen, sonst funktioniert dies nicht. Zum Glück ermöglicht SVN das Hinzufügen leerer Ordner. Nachdem Sie den Ordner unter SVN-Kontrolle gestellt haben, funktioniert das Ziehen mit der rechten Maustaste wie oben beschrieben. Andernfalls wird das generische Windows-Menü "Hier kopieren / hierher verschieben / abbrechen" angezeigt (dh SVN-Auswahlmöglichkeiten fehlen).
Ripvlan
Das war perfekt. Ich hatte einige Probleme beim Verschieben von mehr als 1.500 Dateien auf einmal. Das Verschieben eines Verzeichnisses nach dem anderen schien dieses Problem jedoch zu beseitigen.
Michael Murphy
80

Mit TortoiseSVN verschiebe ich einfach die Datei auf die Festplatte.

Wenn ich meine Änderungen festschreibe, wähle ich die fehlende und die neue Datei aus und wähle " Reparatur verschieben " aus dem Kontextmenü:

Geben Sie hier die Bildbeschreibung ein

Dies bedeutet, dass ich meine IDE Dateien verschieben und Refactoring-Tools verwenden kann, ohne den Verlauf zu verlieren.

Keith
quelle
3
Dies ist meine bevorzugte Methode, um die Dateien jetzt zu verschieben. Eine Warnung; Führen Sie zwischen den Festschreibungen immer nur <20 Dateien gleichzeitig aus. Andernfalls kann es sehr zeitaufwändig sein, die Dateien zu finden, die sich aufeinander beziehen.
DarrenMB
@DarrenMB ist richtig: Ich bin dabei, ein Android-Projekt von Eclipse nach Android Studio zu migrieren. Alle Dateien müssen verschoben werden. Dieser Ansatz ist nicht der, den ich hier verwenden möchte.
Bondax
@Bondax Ja, für Migrationen ganzer Projekte ist es besser, wenn Sie innerhalb von SVN umziehen - das sollten Sie gelegentlich tun. Ich fand dies der bessere Weg für die meisten Dateiverschiebungen, die von den meisten Entwicklern während eines Projekts durchgeführt wurden.
Keith
1
Ich habe auch keine Reparaturbewegung mit Schildkröte SVN 1.9.4
Mark Patterson
@ Mark Patterson: Ich sehe die Option und bin auch auf 1.9.4 (TortoiseSVN 1.9.4, Build 27285 und Subversion 1.9.4, -release). Ich glaube nicht, dass Ihr Problem mit der Version zusammenhängt ... Hier ist die offizielle Dokumentation dieser Funktion: tortoisesvn.net/repairmoves.html
Yosko
37

Klicken Sie in TortoiseSVN mit der rechten Maustaste auf eine beliebige Stelle und gehen Sie zu TortoiseSVN> Repo Browser. Öffnen Sie das Repository.

Sie müssen die Datei dann nur noch per Drag & Drop aus einem Ordner an die gewünschte Stelle ziehen. Sie werden aufgefordert, eine Festschreibungsnachricht hinzuzufügen. Die Standardeinstellung lautet "Datei / Ordner remote verschoben".

RedWolves
quelle
22

Mit TortoiseSVN klicke ich einfach mit der rechten Maustaste und ziehe den Ordner von einem Ort an einen anderen. Wenn Sie den Rechtsklick loslassen, haben Sie die Option "SVN-Versionsdatei verschieben". Ich glaube jedoch, dass SVN dort nichts "Besonderes" tut, sondern einfach die Datei am vorherigen Speicherort löscht und sie dem neuen Speicherort hinzufügt.


quelle
18

Für TortoiseSVN-Kunden:

  1. Wählen Sie die Dateien aus, die Sie verschieben möchten.
  2. Klicken Sie mit der rechten Maustaste und ziehen Sie die Dateien in den Ordner, in den Sie sie verschieben möchten.
  3. Ein Fenster wird angezeigt, nachdem Sie das Ziehen und Ablegen eines Ordners freigegeben haben. Klicken Sie auf "SVN Versionselemente hierher verschieben" ,
  4. Nachdem Sie oben auf geklickt haben, wird das Meldungsfeld des Festschreibungsfensters angezeigt. Geben Sie eine Nachricht ein und senden Sie sie ab.

Jetzt bist du fertig.

Martin
quelle
8

Schneiden Sie die Datei wie gewohnt über das Kontextmenü des Betriebssystems aus. Klicken Sie dann mit der rechten Maustaste, um das Kontextmenü aufzurufen, und wählen TortoiseSVN -> PasteSie dann (stellen Sie sicher, dass Sie vom Stamm aus festschreiben, um sowohl alte als auch neue Dateien in das Festschreiben aufzunehmen).

BornToCode
quelle
4

Ich denke, im SVN-Browser in Tortoisesvn können Sie es einfach von einem Ort zum anderen ziehen.

John Boker
quelle
1

Wenn ich mich ab Version 1.5 nicht irre, kann SVN verschobene Dateien \ Ordner verfolgen. In TortoiseSVN kann die Verwendung von Dateien per Drag & Drop verschoben werden.

aku
quelle
1

Kann auch als "Umbenennen" durch Schildkröte bezeichnet werden, aber svn move ist der Befehl im svn-Client von barebones.

Entwicklung von Chris
quelle
Die einfachste und genaueste Antwort ist diese! Das Verschieben von Dateien mit TortoiseSVN erfolgt mit Rechtsklick> Umbenennen. das ist es.
RoeeK
1

Übertragen einer Datei mit TortoiseSVN:

Schritt: 1 Bitte wählen Sie die Dateien aus, die Sie verschieben möchten. Klicken Sie mit der rechten Maustaste und ziehen Sie die Dateien in den Ordner, in den Sie sie verschieben möchten. Ein Fenster wird geöffnet, nachdem Sie die folgenden Anweisungen befolgt haben

SVN-Option

Schritt 2: Nachdem Sie auf das Obige geklickt haben, wird die Datei wie unten erwähnt festgeschrieben

SVN Commit

Anzar Ansari
quelle
0

Wenn Sie Ordner über den Repository-Browser verschieben, gibt es beim Klicken mit der rechten Maustaste keine Option zum Verschieben. Die einzige Möglichkeit ist das Ziehen und Ablegen.

Danijel
quelle