Mercurial 存储库处于奇怪状态:丢失的文件不会通过更新恢复

Mercurial 存储库处于奇怪状态:丢失的文件不会通过更新恢复

我有一个 mercurial 存储库,我设法将其置于一种奇怪的状态。我怀疑罪魁祸首是我在 Windows 和 Linuxhg客户端(在 Windows 机器上使用 WSL 1)上都使用了存储库(即:我磁盘上的同一个文件夹)。我意识到此时全新克隆可能是最好和最简单的解决方案,但我在书签中有一些未推送的工作,我不想丢失它们。我知道我可以导出补丁并稍后在我的新克隆上重新应用它,但我仍然希望有一个更简单的解决方案。

存储库处于这种奇怪的状态:

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

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

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

因此,status什么也没说,但status -d找到了 101 个丢失的文件。奇怪的是,Linux 客户端没有看到任何丢失的文件:

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

好的,只需通过以下方式恢复update -C(在 Windows 端):

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"

然而,文件仍然丢失:

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

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

事实上,我可以hg update -C连续运行多次,它总是声称更新那 101 个文件:

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"

更奇怪的是,这些文件似乎确实存在:

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

猜猜这里发生了什么事?

相关内容