Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Mercurial: "untracked file in working directory differs from file in requested revision"?

Can anyone tell me what this Mercurial error means?

untracked file in working directory differs from file in requested revision

This occurred when doing an 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' 

From what I can tell this file (a/b/c/d.java) does not match any paths configured in .hgignore. And this specific file is also identical in the two (myapp & myapp-v1) repositories..

I am not clear what this even means. ??

like image 783
Marcus Leon Avatar asked Jan 27 '11 21:01

Marcus Leon


1 Answers

It's telling you you already have a file named a/b/c/d.java in your local working directory of the myapp repo, but it hasn't been added (tracked), and fetch isn't willing to overwrite it when updating/merging.

Things you can do are ether:

  • Move your copy of a/b/c/d.java out of the way and then do the pull/update. After that compare your moved a/b/c/d.java to the one fetch brings down.

or

  • hg add a/b/c/d.java, hg commit a/b/c/d.java, and then pull / merge

The former works because there's no longer a file in the way, and the later works because your copy is tracked so Mercurial can merge them.

Also, you should consider stopping using fetch. It combines pull and update and merge for you, which is just not a safe way to be. In this case your pull would have succeeded and both update and merge would have given you much more helpful messages.

like image 152
Ry4an Brase Avatar answered Sep 23 '22 09:09

Ry4an Brase