[Bug 3855] New: hg merge --repository failure when hg is run from a different drive than the one containing the repository if there are changed subrepos

mercurial-bugs at selenic.com mercurial-bugs at selenic.com
Wed Mar 13 08:37:36 CDT 2013


http://bz.selenic.com/show_bug.cgi?id=3855

          Priority: normal
            Bug ID: 3855
                CC: mercurial-devel at selenic.com
          Assignee: bugzilla at selenic.com
           Summary: hg merge --repository failure when hg is run from a
                    different drive than the one containing the repository
                    if there are changed subrepos
          Severity: bug
    Classification: Unclassified
                OS: Windows
          Reporter: angel.ezquerra at gmail.com
          Hardware: PC
            Status: UNCONFIRMED
           Version: unspecified
         Component: Mercurial
           Product: Mercurial

I have a repository on drive E:. The repository has some subrepos. I have two
heads on default which I want to merge. The repository has several
subrepositories, and each of the anonymous branches leading to each of the two
heads modifies different repositories.

When I tried to merge both heads using TortoiseHg it failed right after
displaying .hgsubstate. Running hg merge from the command line (after going
into the repository root) worked. Since TortoiseHg is installed in C:\ Steve
Borho suggested trying to run the merge from outside the repository and using
--cwd or --repository (as TortoiseHg does internally). This works if I run it
from the same drive were the repository is found (i.e. from somewhere on the E:
drive). But if I try to run it from the C:\ drive it fails as follows:

C:\Program Files\TortoiseHg>hg --repository E:\SPB_SRC merge
** unknown exception encountered, please report by visiting
** http://mercurial.selenic.com/wiki/BugTracker
** Python 2.7.3 (default, Apr 10 2012, 23:24:47) [MSC v.1500 64 bit (AMD64)]
** Mercurial Distributed SCM (version 2.5.2+12-fabbaa250977)
** Extensions loaded:
Traceback (most recent call last):
  File "hg", line 42, in <module>
  File "mercurial\dispatch.pyo", line 28, in run
  File "mercurial\dispatch.pyo", line 65, in dispatch
  File "mercurial\dispatch.pyo", line 88, in _runcatch
  File "mercurial\dispatch.pyo", line 746, in _dispatch
  File "mercurial\dispatch.pyo", line 515, in runcommand
  File "mercurial\dispatch.pyo", line 841, in _runcommand
  File "mercurial\dispatch.pyo", line 812, in checkargs
  File "mercurial\dispatch.pyo", line 741, in <lambda>
  File "mercurial\util.pyo", line 500, in check
  File "mercurial\commands.pyo", line 4116, in merge
  File "mercurial\hg.pyo", line 481, in merge
  File "mercurial\merge.pyo", line 704, in update
  File "mercurial\merge.pyo", line 474, in applyupdates
  File "mercurial\merge.pyo", line 67, in resolve
  File "mercurial\merge.pyo", line 57, in __getitem__
KeyError: '.hgsubstate'

Note that hg is run from the C: drive but the repository is on the E:\ drive.

I tried to come up with a small test case for this but I could not make it
fail. It seems to happen on this particular repository.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the Mercurial-devel mailing list