2011-01-27 18 views
64

¿Alguien puede decirme qué significa este error de Mercurial?Mercurial: "archivo no rastreado en el directorio de trabajo difiere del archivo en la revisión solicitada"?

archivo sin seguimiento en el directorio de trabajo difiere de archivo en solicitada revisión

Esto ocurrió cuando se hace una hg tomará:

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' 

De lo que puedo decir a este archivo (a/b/c/d.java) no coincide con ninguna ruta configurada en .hgignorar. Y este archivo específico también es idéntico en los dos (miapp & myapp-v1) repositorios ...

No estoy seguro de lo que esto significa. ??

Respuesta

69

Le indica que ya tiene un archivo llamado a/b/c/d.java en su directorio local de trabajo del repositorio myapp, pero no ha sido agregado (rastreado), y fetch no desea sobreescribirlo al actualizar/fusionar.

cosas que se pueden hacer son éter:

  • Mueva su copia de a/b/c/d.java fuera del camino y luego hacer el tirón/actualización. Después de eso, compare su movido a/b/c/d.java con el de una búsqueda.

o

  • hg add a/b/c/d.java, hg commit a/b/c/d.java y tire/fusionar

El primero funciona porque ya no es un archivo en el camino, y los trabajos posteriores porque se realiza un seguimiento de su copia entonces Mercurial puede fusionarlos.

Además, debe considerar dejar de usar fetch. Combina pull y update y merge para usted, que no es una forma segura de estarlo. En este caso, su pull hubiera tenido éxito y tanto update como merge le habrían dado mucho más mensajes útiles.

+0

Antes de hacer la fusión 'hg status' retornos sin cambios sobresalientes 'hg add a/b/c/d.java' devuelve" a/b/c/d.java ya rastreado " –

+0

Interesante punto sobre fetch vs pull/merge. Hice un' pull', y luego 'merge' donde recibí muchos mensajes en el formulario:' remote changed dir/blah.xml que uso local borrado (c) colgado versión o dejar (d) elegido? ' –

+0

sí, la fusión es la codificación y no debe pasarse por alto. Para la primera parte, probablemente podríamos averiguarlo con la salida' hg stat', pero podría ser el caso ¿Que su actual directorio de trabajo no es la raíz del repositorio ?, Eso haría posible que hg add dijera agregado, pero digamos "sin seguimiento". Solo una conjetura. –

8

Intenté la respuesta de Ry4an (de eliminar el archivo) y todavía no funcionó, así que ejecuté una purga y eso eliminó todos los rastros de modo que funcionó después. En caso de que alguien esté buscando una solución alternativa.

+0

hg purge no parecía funcionar para mí, no lo hizo t purgar cualquier cosa y sigo recibiendo el mismo mensaje –

+0

purga --todo funcionó para mí. –

15

llegué alrededor de esto ejecutando hg update --clean

3

Si se utiliza TortoiseHG se puede comprobar la opción "Descartar los cambios locales, ninguna copia de seguridad" en la ventana de actualización.

5

acaba de aceptar el diálogo de error a continuación, marque Discard local changes, no backup

enter image description here

Y usted debe ser bueno, va a sobrescribir los archivos locales sin seguimiento ...

Cuestiones relacionadas