J'ai un projet sous contrôle de version, mais le projet a des images, des vidéos et des fichiers Zip qui changent de temps en temps. Je ne veux pas stocker ces fichiers sous la version de contrôle, car ils occupent beaucoup d'espace et font des mises à jour et s'engagent très lentement. P>
Qu'est-ce qu'un bon moyen de traiter cette question et de commettre toujours des fichiers non source qui ont changé? Y a-t-il une meilleure façon? P>
J'utilise actuellement Subversion, s'il existe un autre client de contrôle de version qui est préférable à gérer ce problème, veuillez le recommander! P>
3 Réponses :
J'ai beaucoup de fichiers non source dans svn et le seul moment où il ralentit la validation est quand je les change. Je ne vois pas comment c'est un problème si ils ne changent que "de temps en temps". De plus, la taille ne devrait vraiment pas être une préoccupation. Si votre référentiel est sur un serveur et que vous êtes inquiet de la quantité d'espace, vous devez effectuer une mise à niveau. Les disques durs sont bon marché. Achetez-les. P>
Certaines personnes se sentent fortement que les fichiers non source n'appartiennent pas à la commande source, je dis qu'un projet entier doit être stocké dans le contrôle de la source. De cette façon si mon système de développement diminue, je peux passer à une autre et après quelques minutes de téléchargement du projet, je suis de retour au codage. P>
+1 pour cette réponse. Une addition ... de mon point de vue, tout doit être commandé à droite pour une utilisation de la version. Si vos fichiers non projets ne sont pas structers ... laissez-les en dehors du contrôle de la version.
Bien que je trouve une énorme douleur à traiter avec des fichiers non-texte dans le contrôle de version, en particulier ceux qui changent beaucoup, j'ai accepté la pratique de "si elle est nécessaire pour la version / l'installateur, il devrait aller en version contrôler". Bien sûr, cela n'est pas une règle difficile. Je ne conserve pas les bibliothèques tiers de la version sous la version (bien que connais des personnes qui le font). p>
Je suis venu sous cette opinion après avoir configuré un serveur d'intégration continue à mon magasin. Avoir tout besoin pour la construction pouvant changer de faire, il est beaucoup plus facile. Comme mentionné précédemment, je ne garde pas les libs sous contrôle de la version, mais cela est dû au fait que nous améliorons rarement / ajouter de nouvelles bibliothèques. Si ce n'est pas le cas pour votre magasin, vous pouvez envisager de le faire. De plus, si vos images / vidéos / zips changent plus une fois par an, je vous recommande de les garder sous contrôle de version. P>
Le problème que j'ai avec cela est que je me fiche de l'historique des versions de ces fichiers zip / vidéo, tant qu'ils sont les plus récents, il n'y a pas de problème. C'est une autre raison pour laquelle je ne les veux pas dans le contrôle de la version, il se sent comme si je n'utilise pas le contrôle de la version correctement car il stocke toutes ces différentes versions lorsque je n'ai aucune utilité pour eux.
Vous avez ajouté dans un commentaire: P>
Le problème que j'ai avec c'est que je me fiche de l'historique de la version de ces fichiers zip / vidéo, tant qu'ils sont les plus récents, il n'y a pas de problème. P> blockQuote>
Cela signifie que vous avez un flux de travail linéaire de développement, travaillant uniquement sur la dernière branche principale.
Vous ne semblez pas traiter de la phase "après la libération", où vous devez: p>
- maintenir ce qui fonctionne dans la production li>
- Développer de petites évolutions ... li>
- .. Tout en faisant des refactoires massives pour expérimenter de grandes évolutions li> ul>
Dans les trois derniers cas, la question de "Quels étaient les images em> exactes em> les fichiers zip" que je dois utiliser "ou" j'avais utilisé à l'époque "pourrait devenir important. < / p>
Quoi qu'il en soit, si vous sentez que SVN ne les gérez pas de manière appropriée, je vous recommanderais d'avoir un moyen de vous rappeler que, pour SVN Revision XXX à Yyy, vous utilisiez la version 'Z' de votre ensemble de fichiers binaires.
Pour cela, vous pouvez configurer un référentiel externe comme maven fort> . Voir la question " Est-ce acceptable / bien de stocker binaires dans svn? "(ma réponse dans cette question est proche du sommet de la page, mais je lie directement à la réponse d'Evan comme il mentionne Maven). P>
+1, j'allais répondre au commentaire de l'OP mais vous l'avez cloué.
La question se réfère à SVN mais plus généralement mercurial a des problèmes avec des fichiers plus importants que 10 Mo