有人能告诉我这个Mercurial错误的含义吗?
工作目录中未跟踪的文件 与请求的文件不同 修改
执行hg fetch时发生这种情况:
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)与.hgignore中配置的任何路径都不匹配。这个特定文件在两个(myapp& myapp-v1)存储库中也是相同的。
我不清楚这甚至意味着什么。 ??
答案 0 :(得分:78)
它告诉你在myapp repo的本地工作目录中已经有一个名为a/b/c/d.java
的文件,但是它没有被添加(跟踪),并且fetch在更新/时不愿意覆盖它合并。
你可以做的事情是以太:
a/b/c/d.java
的副本移开,然后执行拉/更新。之后,将您移动的a/b/c/d.java
与一次提取相比较。或
hg add a/b/c/d.java
,hg commit a/b/c/d.java
,然后拉/合并前者的作用是因为不再存在文件,而后者的作用是因为您的副本被跟踪,因此Mercurial可以合并它们。
此外,您应该考虑停止使用fetch
。它结合了pull
和update
以及merge
,这不是一种安全的方式。在这种情况下,您的pull
会成功,而update
和merge
会为您提供更多有用的消息。
答案 1 :(得分:23)
我通过运行hg update --clean
答案 2 :(得分:8)
我尝试了Ry4an的答案(删除文件)并且它仍然无法正常工作,因此我进行了清除,并且清除了所有痕迹,以便它可以使用。以防万一有人在寻找替代解决方案。
答案 3 :(得分:8)
答案 4 :(得分:3)
如果使用TortoiseHG,您可以在“更新”窗口中选中“放弃本地更改,不备份”选项。