Wie verschiebe ich eine Datei (oder einen Ordner) in TortoiseSVN von einem Ordner in einen anderen?

247

Ich möchte eine Datei oder einen Ordner innerhalb desselben Repositorys von einem Ort an einen anderen verschieben, ohne dafür den Repo-Browser verwenden zu müssen und ohne zwei unabhängige Add / Delete-Vorgänge zu erstellen. Die Verwendung des Repo-Browsers funktioniert einwandfrei, außer dass Ihr Code in einem fehlerhaften Zustand hängt, bis Sie alle unterstützenden Änderungen erhalten, die anschließend eingecheckt werden (wie zum Beispiel die .csproj-Datei).

Update: Die Leute haben vorgeschlagen, über die Befehlszeile zu verschieben. Gibt es ein TortoiseSVN-Äquivalent?

jeremcc
quelle

Antworten:

448

Um eine Datei oder einen Satz von Dateien mit zu verschieben Tortoise SVN, klicken Sie mit der rechten Maustaste und ziehen Sie die Zieldateien an ihr Ziel. Lassen Sie die rechte Maustaste los. Das Popup-Menü hat eine SVN move versioned files hereOption.

Beachten Sie, dass der Zielordner bereits zum Repository hinzugefügt wurde, damit die SVN move versioned files hereOption angezeigt wird.

Mark Embling
quelle
32
Ich musste das Gleiche tun und das funktionierte perfekt. Ich wusste nie über diese Option Bescheid. Vielen Dank!
DavGarcia
4
Danke dir! Hinweis: Anschließend werden im Änderungsprotokoll eine Reihe von DELETED- und ADDED-Dateien und -Verzeichnissen angezeigt. Der Revisionsverlauf folgt jedoch den umliegenden Dateien. :)
Yoh Suzuki
1
Was mache ich, wenn ich die Datei bereits verschoben habe, aber svn immer noch denkt, dass sie sich in einem anderen Verzeichnis befindet?
Shawn Mclean
4
Sie müssen auch (sicherlich in v1.7.6) sicherstellen, dass das Verzeichnis, in das Sie die Dateien verschieben, bereits Subversion hinzugefügt wurde
icc97
Die legendäre Antwort machte meinen Tag, ty!
Cyril Gandon
22

Klicken Sie im Windows Explorer mit der rechten Maustaste auf die Datei und ziehen Sie sie von der gewünschten Position an die gewünschte Stelle. Wenn Sie die rechte Maustaste loslassen, wird ein Kontextmenü mit Optionen wie "SVN Versionsdatei hierher verschieben" angezeigt.

http://tortoisesvn.net/most-forgotten-feature

Yknott
quelle
5

Wenn Sie Dateien verschieben und die csproj-Dateien auf dem neuesten Stand halten möchten, verwenden Sie am einfachsten ein Visual Studio-Plugin wie AnkhSVN . Dadurch werden automatisch sowohl die Verschiebungsaktion (als Löschen + Hinzufügen mit Verlauf, da Subversion so funktioniert) als auch eine Änderung in der .csproj-Datei festgeschrieben

Sander Rijken
quelle
4

Über die Befehlszeile können Sie eingeben svn mv path1 path2. Dadurch wird ein Addier- und ein Löschvorgang erstellt, aber in Subversion führt - soweit ich weiß - kein Weg daran vorbei.

Clinton N. Dreisbach
quelle
3

Subversion verfügt noch nicht über erstklassige Umbenennungsvorgänge.

Es gibt einen 6 Jahre alten Fehler bei dem Problem: http://subversion.tigris.org/issues/show_bug.cgi?id=898

Es wird für 1.6 in Betracht gezogen, nachdem Merge Tracking (eine höhere Priorität) hinzugefügt wurde (in 1.5).

swmc
quelle
1

Verwenden Sie den Befehl RENAME von Tortoise und geben Sie einen relativen Pfad ein ("folder / file.ext").

WhyNotHugo
quelle
0

Wie bereits erwähnt, erstellen Sie die Befehle zum Hinzufügen und Löschen. Sie können svn move sowohl für Ihre Arbeitskopie als auch für die Repository-URL verwenden. Wenn Sie Ihre Arbeitskopie verwenden, werden die Änderungen nicht festgeschrieben. Sie müssen sie in einem separaten Vorgang festschreiben.

Wenn Sie eine URL verschieben, müssen Sie eine --message angeben, und die Änderungen werden sofort im Repository übernommen.

Dwilkins
quelle
0

Verwenden Sie den svn moveBefehl, um eine Datei / einen Ordner zu verschieben.

acemtp
quelle
0

Sie müssen die Datei mit der rechten Maustaste ziehen. Sobald Sie die Datei an das neue Ziel freigeben, sehen Sie die Option:

SVN verschiebt hier versionierte Dateien.

Wählen Sie einfach diese Option und Sie sind fertig !!

Manish Singhal
quelle