it-swarm.com.de

Wie benennt man eine Datei mit svn um?

Wenn ich svn mv old_file_name new_file_name versuche, bekomme ich

 svn: Path 'new_file_name' is not a directory

Was ist der richtige Weg? (Sorry, das scheint so unbedeutend, aber ich bin festgefahren).

PS. mit svn version 1.6.11

EDITEs scheint, dass ich diesen Fehler nur bekomme, wenn new_file_name auf den Namen einer Datei verweist, die derzeit unter Versionskontrolle steht. In diesem Fall kann ich das natürlich einfach

 mv old_file_name new_file_name
 svn delete old_file_name
72
Walter

Das Verhalten hängt davon ab, ob der Name der Zieldatei bereits existiert oder nicht. Normalerweise handelt es sich um einen Sicherheitsmechanismus, und es gibt mindestens drei verschiedene Fälle:

Zieldatei existiert nicht existiert:

In diesem Fall sollte svn mv wie folgt funktionieren:

$ svn mv old_file_name new_file_name
A         new_file_name
D         old_file_name
$ svn stat
A  +    new_file_name
        > moved from old_file_name
D       old_file_name
        > moved to new_file_name
$ svn commit
Adding     new_file_name
Deleting   old_file_name
Committing transaction...

Zieldatei ist bereits im Repository vorhanden:

In diesem Fall muss die Zieldatei explizit entfernt werden, bevor die Quelldatei umbenannt werden kann. Dies kann in derselben Transaktion wie folgt durchgeführt werden:

$ svn mv old_file_name new_file_name 
svn: E155010: Path 'new_file_name' is not a directory
$ svn rm new_file_name 
D         new_file_name
$ svn mv old_file_name new_file_name 
A         new_file_name
D         old_file_name
$ svn stat
R  +    new_file_name
        > moved from old_file_name
D       old_file_name
        > moved to new_file_name
$ svn commit
Replacing      new_file_name
Deleting       old_file_name
Committing transaction...

In der Ausgabe von svn stat zeigt die R an, dass die Datei ersetzt wurde und dass die Datei einen Verlauf hat.

Zieldatei existiert bereits lokal (nicht versioniert):

In diesem Fall geht der Inhalt der lokalen Datei verloren. Wenn dies in Ordnung ist, kann die Datei lokal entfernt werden, bevor die vorhandene Datei umbenannt wird.

$ svn mv old_file_name new_file_name 
svn: E155010: Path 'new_file_name' is not a directory
$ rm new_file_name 
$ svn mv old_file_name new_file_name 
A         new_file_name
D         old_file_name
$ svn stat
A  +    new_file_name
        > moved from old_file_name
D       old_file_name
        > moved to new_file_name
$ svn commit
Adding         new_file_name
Deleting       old_file_name
Committing transaction...
96
nosid

Die Verwendung von TortoiseSVN hat für mich problemlos funktioniert.

http://tortoisesvn.net/

Rechtsklick-Datei -> TortoiseSVN-Menü -> Repo-Browser -> Rechtsklick-Datei im Repository -> Umbenennen -> drücken Sie die Eingabetaste -> klicken Sie auf OK

Verwendung von SVN 1.8.8. TortoiseSVN Version 1.8.5

14
storm_m2138

Diese Meldung wird angezeigt, wenn Sie ein Dateisystem ohne Berücksichtigung der Groß- und Kleinschreibung verwenden (z. B. auf einem Mac) und Sie versuchen, den Namen (oder eine andere Falländerung) groß zu setzen , Dummy, Name:

svn mv file-name file-name_
svn mv file-name_ FILE_Name
svn commit
2
superk

Es kann sein, dass Sie ein neues Verzeichnis auf der Festplatte erstellt haben, BEVOR Sie es im SVN erstellen/festlegen. Alles, was Sie brauchen, ist es einfach in SVN zu erstellen und danach zu verschieben:

$ svn mv etc/nagios/hosts/us0101/cs/us0101ccs001.cfg etc/nagios/hosts/us0101/ccs/
svn: E155010: Path '/home/dyr/svn/nagioscore/etc/nagios/hosts/us0101/ccs' is not a directory

$ svn status
?       etc/nagios/hosts/us0101/ccs

$ rm -rvf etc/nagios/hosts/us0101/ccs
removed directory 'etc/nagios/hosts/us0101/ccs'

$ svn mkdir etc/nagios/hosts/us0101/ccs
A         etc/nagios/hosts/us0101/ccs

$ svn move etc/nagios/hosts/us0101/cs/us0101ccs001.cfg etc/nagios/hosts/us0101/ccs/us0101accs001.cfg
A         etc/nagios/hosts/us0101/ccs/us0101accs001.cfg
D         etc/nagios/hosts/us0101/cs/us0101ccs001.cfg

$ svn status
A       etc/nagios/hosts/us0101/ccs
A  +    etc/nagios/hosts/us0101/ccs/us0101accs001.cfg
        > moved from etc/nagios/hosts/us0101/cs/us0101ccs001.cfg
D       etc/nagios/hosts/us0101/cs/us0101ccs001.cfg
        > moved to etc/nagios/hosts/us0101/ccs/us0101accs001.cfg
0
Dennis Yusupoff