Cómo manejar archivos que no necesitan control de versiones en mercurial.

3

Soy nuevo en Mercurial, y en su mayor parte hago informes LaTeX y cálculos estadísticos en R usando archivos .csv y / o .sqlite. Re LaTeX, todo lo que realmente me importa es el archivo .tex. Re R, no necesito control de versión en los archivos .csv o .sqlite porque son estáticos.

Cuando hago 'hg add' para un repositorio con un archivo .csv y / o .sqlite, aparece una advertencia como:

rev2.sqlite: up to 3070 MB of RAM may be required to manage this file
(use 'hg revert rev2.sqlite' to cancel pending addition)

Así que vuelvo y posteriormente uso los agregados como hg add -X *.sqlite. Supongo que realmente tengo dos preguntas:

(1) ¿Debo ignorar estas advertencias? Debido a que estos archivos grandes son estáticos, ¿puedo agregar al repositorio sabiendo que los archivos diff siempre estarán vacíos y no me preocuparé por los recursos desperdiciados?

(2) Si debo seguir excluyendo estos archivos del repositorio, ¿puedo solucionar esta opción? I.E., agregar a mi archivo .hgrc algo que siempre agregue una opción como -I *.tex -I *.R a mis comandos 'hg add'?

¡Gracias!

Richard Herron
fuente

Respuestas:

6

en ~ / .hgrc:

[ui]
ignore = ~/.hgignore

en ~ / .hgignore:

syntax: glob
*.tex
*.R

(También puede poner un archivo .hgignore en cada proyecto; lo anterior lo hará de manera global. Puede llamar al archivo .hgignore en el que se haga referencia .hgrc; dentro de un proyecto, siempre se debe llamar .hgignore)

Wooble
fuente
¡Gracias! Esto hizo el truco. Aunque utilicé *.csv *sqlite porque quería ignorar esos, no los archivos tex y R.
Richard Herron
3

Puede crear un archivo .hgignore para ignorar siempre algunos archivos, consulte esta pregunta tan . Puedes leer la documentación en el Mercurial wiki page para .hgignore o la página de manual para más información.

Es posible que desee un .hgignore como este para ignorar cualquier .sqlite o .csv expediente:

\.sqlite$
\.csv
Mad Scientist
fuente
¡Gracias! Estaba buscando una solución global, pero su respuesta me dio una idea general. Sabía que la respuesta estaba ahí fuera, simplemente no sabía la consulta de búsqueda correcta.
Richard Herron
1

Si no quieres tener que copiar tus archivos grandes de sqlite a mano en todas las instancias de tu repositorio, puedes usar el Extensión de archivos grandes Hg .

Guardará el archivo de forma independiente y realizará un control de versión muy básico (pero con recursos eficientes), basado en comparaciones de suma de comprobación. Otras extensiones no compatibles con Hg BigFiles y Chasquido También están disponibles.

BigFiles requiere que especifique un repositorio alternativo para archivos grandes a mano, y Snap solo está disponible para algunas versiones de hg. Esto es cierto para los archivos grandes, que solo están disponibles en la versión 2.0 de hg y superior. Si está utilizando varias versiones diferentes, es posible que tenga que ir con el Bfiles extensión

Benoit Meister
fuente