Contrôle de code source pour les projets Web

Je recherche de bonnes suggestions sur la façon d'implémenter le contrôle des versions et des sources pour les projets Web.

J'ai étudié la subversion, mais il semble qu'elle ne s'occupe que du code. Je recherche vraiment quelque chose qui puisse faire du bon versioning, branchement, archivage, etc. avec non seulement le code source, mais d'autres actifs Web comme des fichiers d'art, des clips vidéo et même des sauvegardes de base de données.

Nous travaillons dans un environnement mixte mac/pc, donc Visual Source Safe ou tout autre produit purement basé sur PC serait interdit. Une aide ?

请先 登录 后评论

5 réponses

bwinton

Qu'est-ce qui vous fait penser que vous ne pouvez pas versionner, créer des branches, archiver, etc... des fichiers graphiques avec Subversion ?

J'ai utilisé Subversion pour mes programmes, qui incluent des graphiques, et il semble bien les gérer. (Eh bien, la différence est un problème, mais je n'ai pas entendu parler d'un bon programme de différence d'image.)

请先 登录 后评论
palehorse

Vous pouvez ajouter n'importe quel type de fichier à subversion. S'il s'agit de fichiers binaires, la version enregistrée est simplement une copie alors que seules les différences dans les fichiers texte sont enregistrées. cependant, enregistrer ces autres types de fichiers dans subversion est parfaitement acceptable.

L'utilisation de compléments shell (Tortoise sous Windows) rend cela assez facile. Je n'ai aucune expérience avec les clients Mac, mais j'imagine qu'il existe des choix.

请先 登录 后评论
Wally Lawless

J'utilise toujours Subversion, et sous Windows j'utilise TortoiseSVN qui inclut le TortoiseIDiff spécifiquement pour regarder les différences entre les fichiers image.

请先 登录 后评论
yukondude

Les autres ont souligné que Subversion et ses proches n'ont aucun problème à gérer les fichiers binaires (bien qu'ils ne soient pas aussi efficaces en termes d'espace que le texte). L'exigence de sauvegarde de la base de données est cependant plus intéressante, et je l'ai rencontré plus d'une fois.

Idéalement, je voudrais une représentation textuelle du diff entre deux versions d'une base de données (schéma et données). L'application d'un tel diff vous ferait passer d'une version à l'autre. Le moteur de contrôle de source pourrait simplement stocker cela avec chaque validation. Les migrations Rails sont un moyen astucieux de gérer les différences de schéma, mais je n'ai rien vu qui puisse gérer les différences complètes de schéma et de données dans un format texte simple.

À défaut, je suppose que vous pourriez enregistrer un vidage de base de données texte comme le type généré par la commande mysqldump pour MySQL. L'algorithme diff de l'outil de contrôle de source ne le gérera probablement pas efficacement, mais il nécessitera probablement moins d'espace que l'archivage d'un fichier de base de données binaire opaque.

请先 登录 后评论
Community

Je donnerais certainement un autre regard à subversion. Je sais que cela peut être ennuyeux, mais lire le livre SVN vous aidera énormément.

J'utilise personnellement les versions pour Mac. Il a une très bonne interface utilisateur pour interagir avec un dépôt subversion.

Ce que je fais, c'est extraire le répertoire /Trunk d'un projet à la racine du site. De cette façon, je peux tester et exécuter la copie de travail en tant que configuration de développement réelle. Une fois que je suis prêt à être mis en ligne, je peux exporter les fichiers des dossiers repo sans .svn et les télécharger sur un serveur de production ou de transfert. J'espère que cela vous donne une idée du type de flux de travail que vous pouvez avoir en utilisant subversion.

请先 登录 后评论