1

我有一个带有svn subrepo的hg 存储库

我已经成功地将它克隆到某些机器上并提取了最新版本。然后我正在尝试将工作目录更新为修订版:

bwh1te@dev-machine:~/work/project_name$ hg pull
http authorization required
realm: HG Repository
user: bwh1te
password: 
pulling from https://hg.some-company.com/project_name
searching for changes
no changes found
bwh1te@dev-machine:~/work/project_name$ hg update -C RELEASE-2_50
abort: Получена ревизия 28463.

(“Получена ревизия”在俄语中的意思是“检查出的修订版”)因为什么而中止?修订已成功签出!所以由于一些未知的原因,我无法更新。

我也尝试单独检查 svn repo,它可以工作:

bwh1te@dev-machine:~/somestuff/subrepo$ svn co svn+ssh://svn.some-company.com/.../trunk
A    trunk/dev
A    trunk/dev/main.cfg.xml
...
 U   trunk
Checked out revision 28549.

所以:

  1. 可以单独签出 svn subrepo
  2. 我可以在另一台机器hg update上进行这个 repo
  3. 其他用户可以hg update在同一台机器上访问此 repo
  4. svn checkout 和 checkout as subrepo (while hg update) 返回不同的变更集!

我在哪里可以找到问题的根源?

4

1 回答 1

0

问题在于 Subversion 输出中的俄语字母。

关于我的环境的几句话。我的机器上安装了 Ubuntu Linux 12.04,并且LC_ALL=ru_RU.UTF-8在我的 bash 用户配置文件中。所以一些消息,比如来自 Subversion 的消息被翻译成当地语言,在这种情况下是俄语。我猜,Mercurial 解析了这条消息,没想到会有一些非英文符号(只有 ASCII?只有 [A-Za-z0-9]?

我的队友(遇到了同样的问题并最终找到了解决方案)通过为以下内容创建额外别名解决了这个问题svn

#!/bin/bash
LC_ALL=C /usr/bin/svn $@

LC_ALL=也许仅仅在 bash 用户配置文件中制作就足够了。

于 2015-12-30T10:50:34.460 回答