mercurial merge

Mercurial: "el archivo no rastreado en el directorio de trabajo difiere del archivo en la revisiĆ³n solicitada"?



merge (5)

¿Alguien puede decirme qué significa este error Mercurial?

el archivo no rastreado en el directorio de trabajo difiere del archivo en la revisión solicitada

Esto ocurrió al hacer una búsqueda de 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''

Por lo que puedo decir, 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 repositorios (myapp y myapp-v1).

No estoy seguro de lo que esto significa. ??


Lo hg update --clean ejecutando hg update --clean


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


Si usa TortoiseHG, puede marcar la opción "Descartar cambios locales, no hacer copias de seguridad" en la ventana de Actualización.


Simplemente acepte el diálogo de error y luego marque Discard local changes, no backup

Y deberías ser bueno, sobrescribirá cualquier archivo local sin seguimiento ...


Te dice que ya tienes un archivo llamado a/b/c/d.java en tu directorio de trabajo local del repositorio de myapp, pero no ha sido agregado (rastreado), y fetch no está dispuesto a sobrescribirlo al actualizar / fusionando.

Las cosas que puedes hacer son éter:

  • Mueva su copia de a/b/c/d.java fuera del camino y luego haga la extracción / actualización. Después de eso, compara tu movido a/b/c/d.java con el que uno trae.

o

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

El primero funciona porque ya no hay un archivo en el camino, y el último funciona porque su copia se rastrea para que Mercurial pueda fusionarlos.

Además, debería considerar dejar de usar fetch . Combina pull update y merge , lo que no es una forma segura de ser. En este caso, su pull habría tenido éxito y tanto la update como la merge le habrían dado muchos más mensajes útiles.