2010-11-09 11 views
8

estoy teniendo dificultades para comprender hg forget. ¿Es lo mismo que git rm --cached? es decir, eliminará el archivo con la siguiente confirmación y dejará de seguirlo?es `hg forget` lo mismo que` git rm --cached`?

+2

Quizás la respuesta aceptada aquí lo ayude: http://stackoverflow.com/questions/1101167/what-is-the-difference-between-hg-forget-and-hg-remove – ZeissS

Respuesta

9

hg forget le dice a mercurial que deje de rastrear un archivo, pero no lo altera en su directorio de trabajo.

Después de su confirmación se comportará como si nunca hubiera hecho un hg add (aunque, por supuesto, el historial seguirá existiendo). Los nuevos clones no tendrán ese archivo en su directorio de trabajo, pero no se eliminarán en su directorio de trabajo.

Si desea tener un archivo en el archivo/manifiesto de trabajo, pero desea ignorar los cambios futuros, no hay una manera fácil de hacerlo (porque generalmente se considera una mala idea), aunque puede falsificarlo aliasing cosas a use -I en hg commit.

La mejor manera de hacerlo es enviar una muestra del archivo que desea en el repositorio pero cuyos cambios desea ignorar y luego hacer que su sistema de compilación (o sus instrucciones) lo copie a su ubicación no muestra. Por ejemplo, tiene un archivo config-file.sample que se rastrea en el repositorio, y luego tiene setup/installation/build do a cp config-file.sample config-file si config-file no existe. Incluya config-file en su .hgignore para que no se agregue accidentalmente. Eso le proporciona una línea de base rastreada, pero no corre el riesgo de comprometer y empujar sus personalizaciones locales. Esto se hace comúnmente para cosas como rutas de bases de datos.

+0

Creo que git rm --cached es como hg rm --después de – tonfa

+0

pero se eliminará del siguiente compromiso y en adelante? la forma en que lo describes, es exactamente de donde viene mi confusión. detiene el seguimiento: ¿eso significa que los cambios futuros se ignorarán o se eliminará el archivo del manifiesto – knittl

+1

eliminado del manifiesto. como lo demuestra mi afirmación "Los nuevos clones no tendrán ese archivo en su directorio de trabajo". –

Cuestiones relacionadas