tortoise - svn mercurial
Poniendo el directorio de inicio bajo control de fuente(hg) (3)
Durante un tiempo tuve mi código bajo control de código fuente, pero decidí que sería genial poner cosas como mis cosas en mi carpeta .vim, entre otras cosas en un repositorio. (Obviamente no voy a almacenar todo en mi repositorio, solo varios archivos de configuración, mi directorio src, y tal vez algunas otras cosas también)
Pude configurar un repo fino, luego lo llevé a mi servidor donde puedo acceder desde mis otras computadoras, pero no puedo clonarlo en mis otras computadoras. Cuando trato de clonar, falla porque el directorio de inicio no está vacío. ¿Hay alguna manera de hacer lo que quiero aquí?
Como los archivos versionados entre mis computadoras son iguales, lo que hice fue:
~$ hg clone ssh://myserver/hg/dotfiles mydotfiles
~$ mv mydotfiles/.hg .
~$ rm -rf mydotfiles
y eso es todo, ahora su carpeta de inicio está bajo control de versión, pero por supuesto si sus archivos de puntos no son idénticos entre las computadoras, tendrá que hacer algo al respecto.
Como solo quiero versionar algunos archivos y no todo en mi carpeta de inicio, tengo esta sencilla regla en ~/.hgignore
# This .hgignore is for the dotfiles repository only,
# the rest of my HG repositories use the file
# .hgignore_global as referenced by [ui]''s ignore setting.
syntax:glob
*
De esta forma, no obtengo un océano de archivos cuando hago el hg status
y solo veo aquellos archivos que tengo bajo control de versión que han sido modificados.
Pero como quiero ver archivos no versionados cuando trabajo en otro repositorio de hg, tengo esto en mi archivo ~/.hgrc
[ui]
ignore=/home/gajon/.hgignore_global
Y ~/.hgignore_global
contiene algunos filtros para archivos transitorios comunes:
syntax: glob
*.pyc
*~
.*.swp
.svn*
*.svn*
*.fasl
syntax: regexp
^/.pc/
En los otros directorios que ya existen, puede hg init
, hg add
lo que desee, hg commit
that, hg pull
desde el repositorio central y tratar con la fusión resultante.
Supongamos que tiene proj1 y proj2 . proj1 es un repositorio mercurial que desea clonar en proj2 , pero proj2 ya tiene archivos.
Prueba esto:
hg clone proj1 proj3
mv proj3/.hg proj2
rmdir proj3
cd proj2
hg update -C -r tip