문제

다음 명령을 실행할 때 :

svnlook changed {path} -r {rev}

여기서 {path}는 저장소 경로이고 {rev}는 개정 번호입니다. 다음 출력을 얻습니다.

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

출력은 실제로 :

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

"É"및 기타 강조 된 문자는 제대로 표시되지 않습니다 ...

svnlook이 문자를 올바르게 출력하는 방법이 있습니까?

"-XML"옵션과 함께 "SVN Log"를 사용할 수 있으며 적절한 인코딩을 얻을 수 있지만 사전 커밋 후크의 경우이 문제가 필요하며 SVN.EXE는 거래가 아닌 수정품 만 얻을 수 있습니다.

감사

도움이 되었습니까?

해결책

여기에있는 문제는 사전 커밋 후크가 전복 바이너리에 의해 실행되며, 보안상의 이유로 빈 환경을 후크 스크립트로 전달한다는 것입니다. 빈 환경이하는 것 중에서도 특정 로케일 설정을 제거하여 시스템 기본값 (일반적으로 'C'또는 유사한 것)으로 되돌아갑니다.

올바른 출력을 얻으려면 svnlook, 당신은 그것을 실행하기 전에 당신이 관심있는 환경을 복원해야합니다. 스크립트가 배쉬 인 경우 다음과 같은 것일 수 있습니다.

#!/bin/bash

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

# Run svnlook here and get UTF-8 encoded output

일반적으로 '.utf-8'접미사가있는 모든 로케일은 괜찮을 것입니다. 당신이 프랑스어 스피커 인 것처럼 보이면 'FR_FR.UTF-8'로케일은 합리적인 환경이 될 것입니다.

다른 팁

이것을 호출해야합니다.

export LANG="fr_FR"

(또는 개발자의 언어가 무엇이든) svnlook을 사용하기 전에. 쉘 시작 스크립트에서 기본 Lang을 설정할 수도 있으므로 매번 내보낼 필요가 없습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top