2008-10-10 6 views
30

Après avoir demandé this question, il m'a été conseillé de ne pas enregistrer les binaires dans subversion. Ma question est alors qu'est-ce que je fais avec les DLL tierces qui doivent être dans le dossier bin? Je dois être en mesure de vérifier une copie de travail et avoir cette exécution comme un site Web avec toutes les DLL, etc intacts.SVN et les binaires

Répondre

54

Les réponses à votre autre question suggèrent que vous ne commettez aucun généré les fichiers à subversion. Les DLL du dossier bin sont souvent construites dans le cadre de l'application, elles doivent donc être régénérées plutôt que stockées dans subversion.

Si les DLL sont des DLL tierces pour lesquelles vous n'avez pas le code source, je les stockerais dans subversion. Vous devriez tout mettre dans subversion qui est nécessaire pour recréer l'application. Cela signifie que votre code source et les bibliothèques ou programmes tiers.

+0

Salut, je suis d'accord avec votre réponse, mais j'ai défini global ignorores pour *. dlls et maintenant je ne peux pas commettre de nouveaux binaires de Visual Studio à SVN! Toute idée comment puis-je l'importer dans un projet existant? – Krunal

11

Je vérifie toujours les DLL tierces (dans un dossier 'lib') afin que l'application puisse générer et exécuter à partir d'une nouvelle extraction. Je pense que la règle "ne pas vérifier dans les binaires" s'applique aux binaires générés par le code source que vous avez enregistré.

1

J'inclue toutes les DLL requises dans un répertoire DLL dans le projet et les référence à partir de là (avec copie au local). Ensuite, ils peuvent soit être inclus dans le même référentiel/dossier, soit être importés en utilisant un svn-external depuis un emplacement distant (s'ils sont partagés entre plusieurs projets).

5

Comme Ben a dit. Je ne mets pas les binaires qui vont souvent changer dans le contrôle de la source. Mais 3ème partie DLL, ya qu'ils finissent dans un dossier lib sur mon svn aussi.

5

Ce n'est pas parce qu'un fichier est binaire que vous ne devriez pas le vérifier. L'avertissement doit être contre la vérification des objets dérivés dans le référentiel. Vous devriez toujours être capable de reconstruire tous vos objets dérivés à partir des sources. Cela peut signifier que vous devez avoir un fichier binaire tiers dans le référentiel.

0

En fait SVN ne stocke les fichiers binaires beaucoup plus efficace que CVS, pour plus d'informations voir le SVN-FAQ

1

Idéalement, un dépôt SVN devrait exiger tous les fichiers nécessaires pour construire la cible. Ainsi, si vous avez acheté un nouvel ordinateur, installé votre compilateur et votre SVN, puis récupéré le référentiel, vous pouvez construire sans avoir à trouver d'autres dépendances. Les bibliothèques tierces seraient donc mises dans le référentiel, mais les cibles ne le sont pas.

L'exception à ceci serait si vous êtes SVNing les images d'installation. Nous faisons cela ici, mais dans un ensemble différent de dépôts que nos gars de production utilisent (les programmeurs ne le font pas).

5

Les lignes directrices sont simples:

  • Tout ce qui est nécessaire pour reconstruire la solution, il faut vérifier dans *
  • Tout ce qui est généré dans le processus de construction - doit rester

-
* Les programmes, outils, service packs sont une exception évidente à cette règle. Mais ils doivent être listés dans un fichier qui est versionné.

1

Si vous entendez par fichiers binaires les fichiers exécutables, il est recommandé de les régénérer à partir de la source, si la source est disponible.Si par binaire vous entendez des fichiers non-texte, je peux vous dire que j'utilise SVN tout le temps pour stocker des fichiers non-texte (images jpg, fichiers Visio, fichiers bmp, documents MS Word 2003 avec images et diagrammes, fichiers MS Project et Je n'ai jamais eu de problèmes avec la corruption ou quoi que ce soit de ce genre.Il est très pratique de stocker et de gérer tout dans SVN

Questions connexes