svnmercurialsubrepos

Trouble with hg update when trying to checkout subrepo


I have a hg repository with svn subrepo.

I've successfully cloned it to some machine and pulled newest revisions. Then I'm trying to update working dir to revision:

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.

('Получена ревизия' means 'Checked out revision' in Russian) Abort because of what? Revision was successfully checked out! So I can't update because of some unknown causes.

I've also trying to checkout svn repo separately and it works:

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.

So:

  1. Its possible to checkout svn subrepo separately
  2. Its possible for me to hg update this repo on another machines
  3. Its possible for another users to hg update this repo on the same machine
  4. Svn checkout and checkout as subrepo (while hg update) returns different changesets!

Where can I search the root of the problem?


Solution

  • Problem was in Russian letters in Subversion output.

    A couple of words about my environment. My machine has a Ubuntu Linux 12.04 on board and LC_ALL=ru_RU.UTF-8 in my bash user profile. So some messages, like messages from Subversion were translated to local language, in this case Russian. I guess, Mercurial parse this messages and it did not expect some not English symbols (only ASCII? only [A-Za-z0-9]?)

    My team-mate (who had same problem and finally found solution) have fixed this problem by creating additional alias for svn:

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

    Maybe it would be sufficient just to make LC_ALL= in bash user profile.