Mercurial:“工作目录中的未跟踪文件与请求修订中的文件不同”?
谁能告诉我这个水银错误的含义是什么?
工作目录中未跟踪的文件与请求的修订中的文件不同
这发生在进行hg提取时:
C:\myapp>hg fetch ssh://hg/myapp-v1 pulling from ssh://hg/myapp-v1 searching for changes adding changesets adding manifests adding file changes added 93 changesets with 693 changes to 78 files (+1 heads) updating to 797:0df7dbe7dc06 196 files updated, 0 files merged, 196 files removed, 0 files unresolved merging with 704:edb7765768c6 abort: untracked file in working directory differs from file in requested revision: 'a/b/c/d.java'
从我可以告诉这个文件(a / b / c / d.java)不匹配在.hgignoreconfiguration的任何path。 而这个特定的文件在两个(myapp&myapp-v1)存储库中也是相同的。
我不清楚这是甚么意思。 ??
它告诉你,你的myapp a/b/c/d.java
的本地工作目录中已经有一个名为a/b/c/d.java
的文件,但是它没有被添加(跟踪),并且在更新时,fetch不愿意覆盖它/合并。
你可以做的事情是乙醚:
- 移动你的
a/b/c/d.java
的副本,然后执行pull / update。 之后,比较你的移动a/b/c/d.java
到一个取回带来的。
要么
-
hg add a/b/c/d.java
,hg commit a/b/c/d.java
,然后pull / merge
前者的工作原理是因为不再有文件,后面的工作是因为你的副本被跟踪,所以Mercurial可以合并它们。
另外,您应该考虑停止使用fetch
。 它结合了pull
, update
和merge
,这不是一个安全的方式。 在这种情况下,你的pull
成功, update
和merge
会给你更多有用的信息。
我通过运行hg update --clean
解决这个问题
我试着Ry4an的回答(删除文件),但它仍然没有工作,所以我跑了一个清除,并摆脱了所有的痕迹,使之后的工作。 以防万一有人正在寻找替代解决scheme。
只要接受错误对话框,然后selectDiscard local changes, no backup
你应该很好,它会覆盖任何untracked本地文件…
如果使用TortoiseHG,您可以在“更新”窗口中选中“放弃本地更改,无备份”选项。