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.)

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).


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).


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.


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".


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.


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.


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).


4

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


2

Da Sie Tortoise verwenden, sollten Sie diesen Link auf LosTechies überprüfen. Es sollte fast genau das sein, wonach Sie suchen.

http://www.lostechies.com/blogs/joshua_lockwood/archive/2007/09/12/subversion-tip-of-the-day-moving-files.aspx


3
Da dieser Link möglicherweise unterbrochen wird, möchten Sie möglicherweise die relevanten Informationen in Ihre Antwort kopieren.
Cees Timmerman

3
... und diese Verbindung ist unterbrochen. Punkt und Fall.
Stuart.Sklinar

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.


1

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


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


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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.