Question

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

J'ai étudié Subversion, mais il semble ne s'occuper que du code.Je recherche vraiment quelque chose qui puisse faire du bon versioning, du branchement, de l'archivage, etc.avec non seulement le code source, mais aussi d'autres ressources Web telles que des fichiers artistiques, des clips vidéo et même des sauvegardes de bases de données.

Nous travaillons dans un environnement mixte Mac/PC, donc Visual Source Safe ou tout ce qui est purement basé sur PC serait interdit.De l'aide?

Était-ce utile?

La solution

Tous les systèmes de contrôle de code source que j'ai utilisés (CVS, subversion, git) géreront les fichiers binaires ainsi que le texte.Si vous travaillez avec des concepteurs ayant une expérience limitée en matière de contrôle de version, Subversion propose désormais un meilleur choix d'interfaces graphiques.Sur PC, rien ne remplace TortueSVN, et pour le Mac, j'ai entendu de bonnes choses sur Versions.

Autres conseils

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

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

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 dans les fichiers texte, seules les différences 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 simple.Je n'ai aucune expérience avec les clients Mac, mais j'imagine qu'il existe des choix.

Les autres ont souligné que Subversion et ses semblables n'ont aucune difficulté à gérer les fichiers binaires (bien que ce ne soit pas aussi efficace en termes d'espace que le texte).L'exigence de sauvegarde de la base de données est cependant plus intéressante et à laquelle j'ai été confronté plus d'une fois.

Idéalement, je voudrais une représentation textuelle de la différence entre deux versions d'une base de données (schéma et données).L'application d'une telle différence vous ferait passer d'une version à l'autre.Le moteur de contrôle de code source pourrait simplement stocker cela à 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 archiver un dump de base de données texte comme le type mysqldump commande pour MySQL génère.L'algorithme de comparaison 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.

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

j'ai utilisé git depuis plusieurs semaines et j'en suis devenu très friand.Il est multiplateforme, gère exceptionnellement bien les conflits et donne à chacun son propre référentiel de versions complet afin qu'il puisse enregistrer les modifications même lorsqu'il n'est pas connecté à un réseau.

De nombreux projets de grande envergure utilisent désormais git, notamment Ruby on Rails.

Subversion a binaires précompilés pour Mac OS X.Il est également disponible via MacPorts et Mouchard.Il existe quelques excellentes interfaces (mis à part la ligne de commande). svnX est un client open source qui existe depuis un certain temps, et comme mentionné Versions est un très joli client fermé qui est actuellement en version bêta.Tu devrais quand même se familiariser avec la ligne de commande, car vous rencontrerez des problèmes que ces clients GUI ne peuvent pas résoudre.

Subversion gère les fichiers binaires très bien.Je l'ai utilisé pour des projets Web dans le passé et j'ai réussi à versionner des images et des fichiers Flash avec le code qui les utilisait.

Mac a quelque chose appelé "Version" qui est une interface utilisateur de subversion comme "Tortoise SVN". Je l'ai trouvé convivial et efficace.

Je travaille également dans un environnement Mac/PC (dang artsy kids) et la subversion est vraiment la voie à suivre.J'y conserve tous les textes, images, requêtes et codes.

Mes collègues non-technophiles l'ont trouvé facile à utiliser une fois que j'ai expliqué le concept.

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 possède 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 à passer en direct, je peux exporter les fichiers des dossiers du dépôt 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.

Je pense que svn est un excellent choix, certains utilisateurs peuvent même utiliser git pour créer des branchements locaux.J'exécute Eclipse sur mon Mac, j'utilise donc une combinaison de git, de ligne de commande svn et de subversif (un plugin Eclipse pour svn).Voici une liste de clients Mac SVN (la plupart sont multiplateformes)

http://scplugin.tigris.org/ comme TortoiseSVN mais pas aussi riche en fonctionnalités)
http://sous-commander.tigris.org/
http://rapidsvn.tigris.org/
http://www.versionsapp.com/
http://www.syncrosvnclient.com/ (pas gratuit 59 $)
http://www.lachoseinteractive.net/en/community/subversion/svnx/features/

Pour utiliser le contrôle de source avec une base de données, vous devrez probablement produire une représentation textuelle du schéma et des données.Vous devriez l'exécuter automatiquement une fois par jour et valider les modifications dans votre référentiel.

Notez qu'un SGBD peut modifier l'ordre des lignes dans une base de données pour rendre certaines opérations plus efficaces.Cela pourrait donner lieu à deux vidages différents sans pour autant avoir des données différentes.Assurez-vous que tout ce qui crée le vidage de vos données les trie en fonction de la clé primaire de chaque table et que l'ensemble des tables est dans un ordre défini, de sorte que les changements que vous voyez lorsque vous comparez 2 vidages ne soient que les changements importants.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top