Frage

Wenn ich den folgenden Befehl ein:

svnlook changed {path} -r {rev}

where {Pfad} ist der Repository-Pfad und {U} die Revisionsnummer, ich folgende Ausgabe:

U trunk/this/is/a/path/Mon fichier avec un nom accentu,.txt

Der Ausgang eigentlich sein sollte:

U trunk/this/is/a/path/Mon fichier avec un nom accentué.txt

Die „é“ und andere akzentuierte Zeichen nicht korrekt dargestellt ...

Gibt es eine Möglichkeit für svnlook zur Ausgabe von Zeichen richtig?

Ich weiß, dass ich „svn lügt“ mit der „--xml“ Option verwenden kann, um die richtige Codierung zu bekommen, aber ich brauche dies für einen pre-commit Haken und svn.exe kann nur Informationen von Revisionen erhalten, keine Transaktionen .

Danke

War es hilfreich?

Lösung

Die Frage, die Sie hier haben, ist, dass Ihre pre-commit Haken durch die Subversion binär ausgeführt wird, die aus Sicherheitsgründen an den Hook-Skript eine leere Umgebung passiert. Unter den Dingen, eine leere Umgebung tut, ist keine spezifische Locale-Einstellungen entfernen, werden Sie auf den Systemstandard zurückkehrt (in der Regel ‚C‘ oder so ähnlich).

Um die korrekte Ausgabe von svnlook zu erhalten, müssen Sie die Umgebung, die Sie interessieren wiederherstellen, bevor es ausgeführt wird. Wenn Ihr Skript ist bash, vielleicht so etwas wie:

#!/bin/bash

export LANG="en_US.UTF-8"
export PATH="/bin:/usr/bin"

# Run svnlook here and get UTF-8 encoded output

Im Allgemeinen kann jede locale mit dem‘.UTF-8' Suffix sollte in Ordnung sein. Vorausgesetzt, dass Sie scheinen ein Französisch Sprecher zu sein, würde die ‚fr_FR.UTF-8‘ locale eine vernünftige Einstellung sein.

Andere Tipps

Sie sollten versuchen, diesen Aufruf:

export LANG="fr_FR"

(oder was auch immer Ihre Entwickler-Sprache ist), bevor svnlook verwenden. Sie können einstellen, auch eine Standard lang in Ihrem Shell-Skripte starten, so Sie müssen es nicht exportieren jedes Mal.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top