Mercurial 反斜杠反斜杠反斜杠问题

Mercurial 反斜杠反斜杠反斜杠问题,mercurial,backslash,Mercurial,Backslash,我们在mercurial中有一个子存储库,它是使用HgConvert创建的。在我们注意到最初转换的文件有两个版本之前,我们已经让人们修改和签入更改(在Windows下使用Ortoise)大约三周了: e、 g 我曾尝试过hg rename,hg forget,hg remove,但我们似乎总是以两个文件都不存在或两个文件都存在而告终。我还研究了折叠箱子的建议,但它们似乎不适用 如有任何关于修复的建议,将不胜感激。如果我们在\版本上丢失了历史,那将不是世界末日 谢谢我在转换的SVN存储库中看到过这

我们在mercurial中有一个子存储库,它是使用HgConvert创建的。在我们注意到最初转换的文件有两个版本之前,我们已经让人们修改和签入更改(在Windows下使用Ortoise)大约三周了:

e、 g

我曾尝试过
hg rename
hg forget
hg remove
,但我们似乎总是以两个文件都不存在或两个文件都存在而告终。我还研究了折叠箱子的建议,但它们似乎不适用

如有任何关于修复的建议,将不胜感激。如果我们在\版本上丢失了历史,那将不是世界末日


谢谢

我在转换的SVN存储库中看到过这种情况(使用,但我打赌也有同样的问题)。在我看到的案例中,路径的svn属性发生了变化,这显然导致“包含反斜杠的文件名”(而不是路径)存储在svn中

在第一个案例中,我发现是一个目录路径导致我立即遇到问题-在Windows上使用目录路径创建了一个零长度文件,然后在更新Mercurial时由于无法创建相同名称的目录而中止

我希望创建双条目的顺序类似于:

  • 更新到包含带反斜杠的文件路径的修订版

  • 新文件显示为未跟踪,因为Mercurial清单当前包含带反斜杠的路径,但在查看工作目录时,它将所有文件路径正常化为正向斜杠,因此它不会显示在清单中

  • 用户添加“新”文件

  • 在后续更新中,两个路径都会更新,但其中一个路径会覆盖工作目录中的另一个路径。如果你运气好的话,新版本就是最终进入工作目录的版本

  • 您可能无法在Windows上修复此问题,但您应该能够通过单引号引用文件名(例如,
    hg rm'Dir\Project\filename.ext'
    )来删除Linux(或其他类似UNIX的操作系统,带有区分大小写的文件系统)上的反斜杠版本。如果在Linux上更新到有问题的版本,您应该会在工作目录的根目录中看到实际名为
    'Dir\Project\FileName.ext'
    的文件


    只需确保反斜杠版本是应该删除的版本,否则您可能需要手动将它们合并在一起以获得所需的结果。

    您的意思是两个文件都显示在磁盘上吗?
    Dir\Project/FileName.ext
    Dir/Project/FileName.ext