【问题标题】:Trouble with hg update when trying to checkout subrepo尝试签出 subrepo 时出现 hg update 问题
【发布时间】:2015-10-09 11:04:31
【问题描述】:

我有一个带有 svn subrepohg 存储库

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

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此仓库
  4. Svn checkout 和 checkout as subrepo(hg update)返回不同的变更集!

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

【问题讨论】:

    标签: svn mercurial subrepos


    【解决方案1】:

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

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

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

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

    也许在 bash 用户配置文件中创建 LC_ALL= 就足够了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-16
      • 1970-01-01
      • 2021-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-27
      相关资源
      最近更新 更多