Glasi: TortoiseSVN - Massenumbenennung

Hallo Forum,

ich benutze TortoiseSVN als Versionierungswerkzeug für meine Projekte (Version TortoiseSVN 1.6.4, Build 16808 - 32 Bit , 2009/08/06 07:26:35).

ich habe in einem Ordner ca. 400 Grafikdateien, jeweils die Hälfte als Thumbnail und die andere Hälfte als Originale. Die Dateinamen folgen einer Konvention: "dieserteilistunterschiedlich-small.jpg" und "dieserteilistunterschiedlich-large.jpg". Alle stehen unter Versionskontrolle und sollen nun in die neuen Unterordner "/small" und "/large" verschoben werden. Soweit kein Problem.

Nach dem Verschieben möchte ich natürlich gern die Dateinamen anpassen, sprich das "-large" und "-small" entfernen. Da ich die History der Dateien nicht verlieren möchte, soll das im Einklang mit TortoiseSVN passieren. Nach langer Recherche im Internet konnte ich keine Möglichkeit finden, eine Massenumbenennung mit TortoiseSVN durchzuführen (auch nicht per Batch).

Hat jemand einen Lösungsvorschlag?

Vielen Dank.

  1. |soll das im Einklang mit TortoiseSVN passieren. Nach langer Recherche im Internet konnte ich keine Möglichkeit finden, eine Massenumbenennung mit TortoiseSVN durchzuführen (auch nicht per Batch).

    Tortoise benennt überhaupt keine Dateien um. Tortoise ist lediglich der Client, der u.a auf svn und svnadmin zugreift. Insofern kommst Du um ein (ggf. selbst verfasstes) Skript nicht herum.

    Vielleicht hilft Dir ja dieses Tool weiter:

    svn_mucc

    Es ist ein svn multicopy tool. läuft unter Python.

    Gruß vom foomaker

    --
    Ändere, was Du ändern kannst.
    Akzeptiere, was Du nicht ändern kannst.
    Lerne, das eine vom anderen zu unterscheiden.
  2. Moin Moin!

    Nach dem Verschieben möchte ich natürlich gern die Dateinamen anpassen, sprich das "-large" und "-small" entfernen. Da ich die History der Dateien nicht verlieren möchte, soll das im Einklang mit TortoiseSVN passieren. Nach langer Recherche im Internet konnte ich keine Möglichkeit finden, eine Massenumbenennung mit TortoiseSVN durchzuführen (auch nicht per Batch).

    Hat jemand einen Lösungsvorschlag?

    Kommandozeile.

    svn rename (das letztlich nur eine Abkürzung für svn copy und svn delete ist) kann immer nur eine einzige Datei umbenennen, also brauchst Du eine Schleife, die "svn rename $old $new" für jede Datei aufruft. Das geht per Shell-Script, DOS-Batch, Perl, Python, PHP, Basic, was immer Dir am vertrautesten ist. Das svn-Executable findest Du auf dem SVN-Server, ob TortoiseSVN in Deiner Version einen eigenen Kommandozeilen-Client svn.exe mitbringt, weiß ich nicht. Wer suchet, der findet. ;-) So lange die ersten zwei bis drei Stellen der Version übereinstimmen (also 1.6 oder 1.6.4), sollte das alles kein großes Problem sein.

    TortoiseSVN bietet keine passende Option dafür, weil $new aus $old berechnet werden muß, und TortoiseSVN dafür keinen passenden Interpreter / Parser hat. Theoretisch könnte man TortoiseSVN entsprechend erweitern.

    Alexander

    --
    Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".