Mercurial - ¿Cómo eliminar un archivo del control de versiones?


Así que accidentalmente incluí un archivo de configuración (diferente para cada máquina) en nuestros repositorios mercurial.

¿Cómo puedo conseguir que Mercurial no lo incluya en el control de versiones? No quiero borrar el archivo ya que todavía lo quiero. Y no quiero hacer que el archivo se elimine en los directorios de trabajo de otros desarrolladores tampoco.

¿Y cómo hago esto en TortoiseHg?

Author: Greg, 2010-07-15

5 answers

Haga clic derecho en el archivo -> TortoiseHg -> Olvidar archivos. Haz clic en Olvidar. Confirmar y Sincronizar.

Editar: También querrá agregar la ruta a su .hgignore para evitar que se agregue de nuevo. Puede hacer clic derecho en el archivo en el diálogo de confirmación de HG y elegir ignorarlo.

 39
Author: Nate,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-08-21 10:10:22

Aquí está la forma manual de hacerlo a través de la línea de comandos:

  1. Copie el archivo de configuración en algún lugar fuera del repositorio.
  2. Ejecutar hg rm path/to/config/file
  3. Agregue la ruta del archivo de configuración a su .hgignore.
  4. Confirme el repositorio.
  5. Mueva el archivo de configuración de nuevo a donde lo tenía.
  6. Haga un hg stat en su repositorio para verificar que hizo todo bien. (No debería aparecer en la lista de modificados / agregados file).

Edit :

hg forget es la mejor manera de hacer esto.

  1. Corre hg forget path/to/config/file
  2. Edite su .hgignore y agregue la ruta al archivo de configuración.
  3. hg ci para guardar los cambios.
  4. Ejecute hg stat para asegurarse de que todo funcione de acuerdo con el plan.

Ver respuesta de nates para cómo hacerlo TortoiseHg.

 27
Author: Sam Dolan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-07-14 21:54:21

hg remove o hg remove -f? Creo que hg forget también lo elimina de la rama.

En ambos casos, los archivos se conservan en su directorio.

 2
Author: rmk,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-07-14 21:25:31

Para aquellos que usan SourceTree, hay una opción Stop Tracking cuando hace clic con el botón derecho en un archivo, básicamente hace lo mismo que hg forget o git rm --cache, eliminando el archivo del repositorio pero no del disco duro.

 -1
Author: paradite,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-06-08 03:58:01

Agrégalo a tu lista de ignorados.

Ver el .hgignore archivo.

TortoiseHg le da acceso a este archivo de configuración a través de la opción de menú "Editar Ignorar filtro".

 -2
Author: Rik Heywood,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-07-14 21:31:27