首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >"svnlook changed“编码

"svnlook changed“编码
EN

Stack Overflow用户
提问于 2009-04-30 20:24:18
回答 2查看 2.6K关注 0票数 1

当我执行以下命令时:

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正确地输出字符?

我知道我可以使用"svn log“和"--xml”选项来获得正确的编码,但是我需要它来实现预提交钩子,并且svn.exe只能从修订中获得信息,而不能从事务中获得信息。

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-04-30 21:34:43

这里的问题是,预提交钩子是由Subversion二进制文件运行的,出于安全原因,Subversion二进制文件会将一个空环境传递给钩子脚本。空环境所做的事情之一是删除任何特定的区域设置,将您恢复为系统默认设置(通常是'C‘或类似的东西)。

要从svnlook获得正确的输出,您需要在运行它之前恢复您关心的环境。如果您的脚本是bash,可能如下所示:

代码语言:javascript
复制
#!/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‘区域设置将是一个合理的设置。

票数 2
EN

Stack Overflow用户

发布于 2009-04-30 20:38:17

您应该尝试调用以下代码:

代码语言:javascript
复制
export LANG="fr_FR"

(或者不管你的开发者的语言是什么),在使用svnlook之前。您还可以在shell启动脚本中设置默认的lang,这样就不必每次都导出它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/808859

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档