2010-12-14 69 views
2

J'ai un projet qui se trouve dans le référentiel Mercurial. Dans le dossier racine, il y a un fichier .hgignore, qui indique que le dossier "Bin" doit être ignoré (ainsi que d'autres fichiers et dossiers).Comment ramifier l'ensemble du dépôt, y compris les fichiers ignorés

Maintenant, je veux cloner ce dépôt mais d'une certaine manière, que TOUS les dossiers et fichiers doivent être clonés, aussi ceux d'origine ignorés. Si je clone juste le dépôt, alors que je n'ai que les fichiers, qui sont inclus dans le dépôt, mon dossier bin est manquant.

Comment puis-je récupérer le référentiel cloné avec tous les fichiers qu'il contient? Je veux fusionner ces deux dépôts ensemble dans un moment ...

PS - Je travaille sur une application héritée qui a beaucoup de DLL externes dans le dossier bin de l'application. Je sais que je devrais les mettre dans un dossier séparé, mais c'est une autre histoire.

+1

Regardez, pour être franc. Si vous savez que vous devriez les mettre dans un dossier séparé, alors ** le faire **. Vous n'avez pas besoin de les déplacer, copiez-les simplement dans un dossier séparé et validez-les dans le référentiel. De cette façon, un clone complet a tout ce dont vous avez besoin. Oui, vous devrez copier les fichiers dans le répertoire Bin sur un nouveau clone, mais c'est mieux que de trouver les fichiers qui vous manquent et d'où les obtenir. –

+0

D'accord, le fera – sventevit

Répondre

3

Il suffit de le copier.

Copiez l'arbre entier du point a au point b, et la nouvelle copie fonctionnera parfaitement comme référentiel. La seule chose qui serait différente d'un clone est l'absence de liens durs et que le chemin d'accès par défaut/push sera configuré pour être le même que l'original, plutôt que de pointer vers l'original. C'est facile à modifier en éditant .hg/hgrc si vous voulez.

+0

@Martin: Oui, d'accord. Les liens physiques sont également perdus. –

+0

Pourrait-il y avoir des problèmes avec la fusion de ces deux référentiels à l'avenir? – sventevit

+2

@_simon_ Hormis les liens durs internes au repo et le chemin 'default', une copie est la même chose qu'un clone. La fusion de code à partir d'un répertoire copié est donc exactement la même que la fusion de code à partir d'un répertoire cloné. – Rudi

2

Un fichier ignoré ne se trouve pas dans votre référentiel, il ne sera donc pas cloné. Vous devez copier ces fichiers manuellement après avoir cloné le référentiel. Lorsque vous copiez ces fichiers, je pense que ce ne sera pas un problème si vous remplacez d'autres fichiers qui sont dans votre dépôt (ils sont essentiellement les mêmes fichiers après tout), tant que vous ne copiez pas le fichier .hg dossier dans la racine de votre caisse, vous ira probablement bien.

+0

Bien sûr111 :) – sventevit