Question

Pendant un certain temps, je n'avais que mon code sous le contrôle source, mais j'ai décidé que ce serait cool de mettre des choses comme mes affaires dans mon dossier .vim entre autres dans un repo. (Je ne vais évidemment pas tout stocker dans mon dépôt, juste divers fichiers de configuration, mon répertoire SRC et peut-être aussi quelques autres choses)

J'ai pu configurer un repo très bien, puis le pousser vers mon serveur où je peux y accéder depuis mes autres ordinateurs, mais je ne peux pas le cloner à mes autres ordinateurs. Lorsque j'essaie de le cloner, cela échoue car le répertoire de la maison n'est pas vide. Existe-t-il un moyen de faire ce que je veux ici?

Était-ce utile?

La solution

Étant donné que les fichiers versés entre mes ordinateurs sont les mêmes, ce que j'ai fait était:

~$ hg clone ssh://myserver/hg/dotfiles mydotfiles
~$ mv mydotfiles/.hg .
~$ rm -rf mydotfiles

Et c'est tout, maintenant votre dossier à domicile est sous le contrôle de version, mais bien sûr, si vos fichiers DOT ne sont pas identiques entre les ordinateurs, vous devrez faire quelque chose.

Comme je ne veux que verser des fichiers et pas tout dans mon dossier à domicile, j'ai cette règle simple dans ~/.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 cette façon, je n'ai pas un océan de fichiers quand je le fais hg status et ne voyez que ces fichiers que j'ai sous le contrôle de version qui ont été modifiés.

Mais comme je veux voir des fichiers non versés lorsque je travaille dans un autre référentiel HG, j'ai ceci dans mon ~/.hgrc dossier

[ui]
ignore=/home/gajon/.hgignore_global

Et ~/.hgignore_global Contient certains filtres pour les fichiers transitoires communs:

syntax: glob
*.pyc
*~
.*.swp
.svn*
*.svn*
*.fasl

syntax: regexp
^\.pc/

Autres conseils

Supposons que tu as proj1 et proj2. proj1 est un repos mercurial que vous voulez cloner proj2, mais proj2 a déjà des fichiers.

Essaye ça:

hg clone proj1 proj3
mv proj3/.hg proj2
rmdir proj3
cd proj2
hg update -C -r tip

Dans les autres répertoires qui existent déjà, vous pourriez hg init, hg add ce que tu veux, hg commit ce, hg pull du dépôt central et traitez la fusion qui en résulte.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top