SVN Status überprüfen und hinzufügen

  • Guten Tag,
    ich bräuchte einmal eure Hilfe.
    Und zwar muss bei SVN jede neue Datei hinzugefügt werden über svn add. Dies mache ich über den folgenden Befehl:

    Code
    svn st | grep ? | sed 's/./svn add/' | sh


    Nun habe ich dabei ein Problem:
    Wenn im Dateipfad ein Leerzeichen ist funktioniert das Ganze nicht.

    Beispielsweise

    Code
    ? SVN/repo/Neuer Ordner/test.txt


    wird zu

    Code
    svn add SVN/repo/Neuer Ordner/test.txt


    Der Befehl müsste in der Shell jedoch so heißen:

    Code
    svn add SVN/repo/Neuer\ Ordner/test.txt


    damit das Leerzeichen "akzeptiert wird"
    Ich kann leider mit sed nicht so gut umgehen, sodass ich nicht weiß, wie ich im zweiten Teil ein Leerzeichen " " durch "\ " ersetzen kann.

    Code
    sed 's/ /\\ /g'


    [font="Tahoma"]Jedoch wird so jedes einzelne Leerzeichen umgewandelt und es funktioniert immer noch nicht. [/font]
    Es muss ja eine Möglichkeit geben Scriptbasiert alle neuen Elemente hinzuzufügen ohne viel Probleme und eingreifen
    Ich habe mir schon überlegt Stupide über find das ganze zu lösen, jedoch erscheint mir das ein bisschen uneffizient.

    Hat von euch vielleicht jemand eine Möglichkeit?

    mit freundlichen Grüßen
    [font="Tahoma"]Nesc
    [/font]

  • Hallo nesc,

    das mit dem sed hat sich, wie ich gelesen habe, ja wohl erledigt.

    Hast Du schon mal versucht, den gesamten Pfad oder wenigstens den Dateiname in doppelte Anführungszeichen zu setzen?

    Prinzipiell würde ich sagen, nur weil die Möglichkeit besteht, Leerzeichen in Pfadnamen zu haben, würde ich das möglichst vermeiden.
    Selbiges gilt für Umlaute in Pfad- und Dateinamen. Irgendwann - und meist dann, wenn man es am wenigsten brauchen kann - kommt es zu Problemen.


    cheers,
    -ds-

  • Okay, das mit den Anführungszeichen klappt.
    Es sieht zwar blöd aus, vielleicht geht es eleganter aber erstmal habe ich es so gelöst:

    Code
    svn st | grep ? | sed 's/./svn add/' | sed 's/       / "/' | sed 's/$/"/ | sh


    Ergebnis:

    Code
    svn add "Neuer Ordner"


    Und das passt dann ebenfalls.
    Der Grund für die 7 Leerzeichen ist, das nach dem Status (?, M, etc) immer 7 Leerzeichen sind, und dann fängt der Pfad an.

    Nächste mal weiß ich Bescheid ;) Leerzeichen ade.
    Hatte bisher alles immer nur manuell hinzugefügt, jedoch war es mir zu lästig, verständlicher weise ;)

    Für Daten die gelöscht werden, wird nun das ! substituiert:

    Code
    svn st | grep \! | sed 's/./svn del/' | sed 's/       / "' | sed 's/$/"/ | sh

    daraus konnte ich mir nun ein Menü in meinem "admintool" zur Verwaltung öffnen.
    Verschiedene Tastenkombinationen für svn ci, svn st, svn co, svn up, neue Daten hinzufügen und alte Daten entfernen.

    Danke nochmal für den Tipp mit den Anführungszeichen, da kam ich echt nicht drauf:danke_ATDE:

    mit freundlichen Grüßen
    Nesc.

    Einmal editiert, zuletzt von nesc (20. August 2013 um 16:06)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!