2010-08-12 8 views
2

J'écris un ensemble d'applications django et j'aimerais utiliser Hg pour le contrôle de version. Je voudrais que chaque application soit indépendante des autres, donc dans chaque application il peut y avoir un répertoire pour les médias statiques qui contient des images que je ne voudrais pas sous contrôle de version. En d'autres termes, les fichiers binaires ne seraient pas tous dans un seul emplacement centralFichiers Mercurial (Hg) et binaires

Je voudrais trouver un moyen de cloner le référentiel qui inclurait des copies des fichiers image. Ce serait aussi génial si, quand j'ai fait une fusion, s'il y avait un fichier image dans un dépôt et pas un autre, il y aurait une sorte d'avertissement.

Actuellement j'utilise un script python pour trouver des images et d'autres fichiers binaires qui sont dans un repo, mais pas dans l'autre. Mais beaucoup de gens doivent faire face à ce problème, il doit donc y avoir une solution plus robuste et élégante.

Une autre chose ... pour des raisons que je ne veux pas aborder, généralement l'un de mes repos est sur une machine Windows, et l'autre sur Linux. Donc, une solution crossplateforme serait bien.

Répondre

2

Mercurial peut suivre n'importe quel type de fichier, pour les fichiers binaires si quelque chose change, alors le fichier entier est remplacé et pas seulement les changements. Sur l'obtention d'un avertissement si un dépôt ne contient pas de fichier, c'est un peu le point d'un DVCS est que les repos sont liés mais sont autonomes. Vous pouvez toujours vérifier et voir quels fichiers ont été ajoutés lors d'une opération de synchronisation ou de fusion.

+0

Merci. Oui, je suis conscient que je peux mettre n'importe quel type de fichier dans Hg. Cependant, je crois que lorsqu'un fichier binaire change, l'ancien fichier binaire est conservé par Hg. C'est bien si vous voulez récupérer le fichier dans son état précédent. Mais aussi peut rendre le repo énorme. Donc, pour l'instant, je vais continuer à utiliser python pour gérer les fichiers image. Voici un extrait intéressant dont j'ai tiré quelques idées: http://code.activestate.com/recipes/576777-simple-ftp-mirror/ Si j'ai le temps, je posterai ma version à activestate. – Chuck

7

Depuis Mercurial 2.0, l'extension largefiles est maintenant incluse dans la distribution principale. Cette extension conserve et gère les fichiers volumineux à l'extérieur du référentiel «normal» de manière à tirer parti de DCVS mais sans bénéficier de la croissance exponentielle de la taille et du temps de traitement.

D'autres extensions qui fonctionnent selon des lignes similaires sont SnapExtension et BigFilesExtension. Cependant, ces deux ne sont pas distribués avec Mercurial (vous devez les obtenir manuellement).

0

L'actuel Mercurial book (par Bryan O'Sullivan) dit, que les magasins Mercurial diffère aussi pour les fichiers binaires. Cette efficacité dépend évidemment de la nature des modifications apportées aux fichiers binaires.

Questions connexes