[Bug 6491] New: Repository in a state where files are erroneously identified as missing

mercurial-bugs at mercurial-scm.org mercurial-bugs at mercurial-scm.org
Tue Feb 23 08:23:24 UTC 2021


https://bz.mercurial-scm.org/show_bug.cgi?id=6491

            Bug ID: 6491
           Summary: Repository in a state where files are erroneously
                    identified as missing
           Product: Mercurial
           Version: 5.6.1
          Hardware: PC
                OS: Other
            Status: UNCONFIRMED
          Severity: bug
          Priority: wish
         Component: Mercurial
          Assignee: bugzilla at mercurial-scm.org
          Reporter: mercurial at mbox.tinloaf.de
                CC: mercurial-devel at mercurial-scm.org
    Python Version: ---

I managed to get a mercurial repository into a state where a bunch of files
(which exist on disk) are detected as missing, and there seems to be no way of
"bringing them back" (at least as far as mercurial is considered). I suspect
that this could be caused by accessing the same repository (as in: the very
same folder on the disk) both from Windows and Linux (inside a WSL 1
container). My Windows mercurial version is 5.6.1, the Linux mercurial version
is 5.3.1.

The repository is in this weird state (from the Windows side of things):

PS D:\development\DEFAULT\efa> hg status

PS D:\development\DEFAULT\efa> hg status -d | Measure-Object -line

Lines Words Characters Property
----- ----- ---------- --------
  101


So, `status` just says nothing, but `status -d` finds 101 missing files.
Weirdly, the Linux client does not see any missing files:

lba at One:~/dev/DEFAULT/efa$ hg status -d | wc -l
0


Okay, just restore by `update -C` (on the Windows side):


PS D:\development\DEFAULT\efa> hg update -C
101 files updated, 0 files merged, 0 files removed, 0 files unresolved
updated to "9a390e7aae73: fixed"
1 other heads for branch "default"


However, the files are still missing:


PS D:\development\DEFAULT\efa> hg status -d | Measure-Object -line

Lines Words Characters Property
----- ----- ---------- --------
  101


In fact, I can run `hg update -C` multiple times successively, and it always
claims to update those 101 files:


PS D:\development\DEFAULT\efa> hg up -C
101 files updated, 0 files merged, 0 files removed, 0 files unresolved
updated to "9a390e7aae73: fixed"
1 other heads for branch "default"
PS D:\development\DEFAULT\efa> hg up -C
101 files updated, 0 files merged, 0 files removed, 0 files unresolved
updated to "9a390e7aae73: fixed"
1 other heads for branch "default"


To make things ever weirder, the files are actually there:


PS D:\development\DEFAULT\efa> hg status -d | select -first 1
! build\docker\Dockerfile
PS D:\development\DEFAULT\efa> ls .\build\docker\Dockerfile


    Directory: D:\development\DEFAULT\efa\build\docker


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----         2/23/2021  12:29 PM            641 Dockerfile


I've tried the following three suggestions (by marmoute and nbjoerg in the IRC
channel), without luck:

* hg up -r null ; hg up 
* hg debugrebuilddirstate ; hg up -C
* rm .\hg\wcache\* ; hg up -C

All of them result in the same situation as outlined above.

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


More information about the Mercurial-devel mailing list