Il y a quelques mois, j'ai creusé dans Subversion et GIT et j'ai été déçu. Ils gèrent bien le CODE SOURCE mais pas les autres aspects. Par exemple, un site Web sous contrôle de version doit gérer la propriété des fichiers / répertoires, l'accès en lecture / écriture aux fichiers / répertoires, les listes de contrôle d'accès, les horodatages et le contenu de la base de données. et liens externes. Existe-t-il un système de contrôle de version qui peut faire une réversion aussi parfaite que le rechargement à partir d'une sauvegarde vieille d'un mois?
17
Réponses:
Vous êtes confus quant au rôle d'un système de contrôle de version. Il n'est pas et n'a jamais été conçu pour être un système de sauvegarde pour un site Web en cours d'exécution. Il fait un très bon travail de gestion de contenu statique de sorte qu'il soit entré en production de manière contrôlée. Avec une utilisation appropriée du balisage et des extractions automatisées, même les sites à changement rapide peuvent être conservés dans un système de contrôle de version.
Un système de contrôle de version sera en mesure de vous dire comment vous êtes passé du site le mois dernier à ce à quoi il ressemble aujourd'hui (au moins pour les composants sous contrôle de source). Il doit inclure tout ce dont vous avez besoin pour reconstruire le site Web (à l'exception du contenu dynamique). Comme d'autres l'ont noté, toute modification des autorisations et de la propriété doit être scriptée et ce script inclus dans le contrôle de version.
Les autorisations d'accès aux sites Web sont généralement assez simples. (Fondamentalement, vous devez vous assurer que le serveur Web peut lire tout le contenu et en écrire très peu.) À l'exception de la propriété du répertoire des quelques répertoires qui doivent être accessibles en écriture par la subversion du serveur Web, et éventuellement git, peut certainement gérer les autorisations. Les répertoires accessibles en écriture par le serveur Web contiennent généralement du contenu dynamique (créé et mis à jour à partir du site Web), qui est géré séparément de la source des sites Web.
Si on me demandait de travailler avec un site Web avec des autorisations et des listes de contrôle d'accès compliquées sur votre site Web, j'aurais de sérieuses préoccupations concernant le processus utilisé pour gérer le site Web. La mise en œuvre d'un système de contrôle de version et le déplacement des listes de contrôle d'accès vers celui-ci serait l'une des solutions que j'envisagerais sérieusement.
Le contenu dynamique, tel que les entrées de blog ou les commentaires, est généralement contenu dans une base de données ou une autre banque de données plutôt que le contrôle de version utilisé pour créer le site. Le magasin de données peut être organisé pour fournir un contrôle de version de son contenu (tout comme ce logiciel). De nombreux wikis utilisent un système de contrôle de version pour suivre les révisions.
ÉDITER:
Ces problèmes peuvent être traités en important le site dans un système de contrôle de version et en modifiant votre processus afin que le site maître soit mis à jour via ce système. (a), (b) et (c) sont gérés directement par le contrôle de version. Vous voudrez peut-être baliser les versions pour que (c) fonctionne mieux. (d) n'est généralement pas un problème si vous n'avez que le système de déploiement qui modifie votre site. Je n'ai jamais eu besoin d'ACL sur le contenu du site.
(e) ne devrait être exécuté que lors de la création initiale et des modifications majeures. Il peut également inclure le script qui met à jour le site à partir du contrôle de version et s'exécute fréquemment. Ces scripts ont tendance à être assez simples lorsque vous gardez votre site dans un système de contrôle d'aversion.
Parce que ce n'est pas nécessaire si vous utilisez un système de contrôle de version.
CVS et Subversion suivent ce que vous devez suivre si vous les utilisez. Ils ne suivront pas ce que vous devez suivre car vous n'utilisez pas de système de contrôle de version, et ils ne devraient pas non plus le faire. Ils suivent ce que vous devez suivre lorsque vous utilisez un système de contrôle de version.
J'ai travaillé avec plusieurs sites qui ont géré leur contenu à l'aide du contrôle de version. Tous avaient des exigences différentes pour les sites intermédiaires, la fréquence de déploiement et l'exhaustivité des mises à jour. Une fois que les sites étaient sous contrôle de version, le reste des exigences était relativement facile à satisfaire. La documentation de CVS et de Subversion propose des méthodes de mise à jour possibles.
Vous devrez peut-être des listes de contrôle d'accès pour limiter l'accès à des zones particulières du contenu contrôlé par la version. Cependant, j'ai tendance à travailler sur une base de confiance. Le contrôle de version permet de voir facilement qui a fait quoi et quand. Si vous ne reformatez pas les fichiers, il est facile d'obtenir un historique annoté d'un fichier indiquant qui a ajouté quelles lignes quand.
la source
Tous et aucun d'entre eux.
C'est une mauvaise idée d'obtenir le contrôle des sources pour gérer ces détails directement, de la manière dont votre question est intimiste.
Cependant, vous pouvez écrire un script bash (* nix) ou un script powershell (Windows), qui atteint tout ou partie de ces objectifs. Ce script pourrait être stocké dans le contrôle de code source.
Ensuite, vous pouvez faire de ce script l'un de vos artefacts de génération et l'exécuter dans le cadre de votre déploiement.
la source
À mon humble avis, un système de contrôle de version en soi n'est pas destiné à être utilisé de cette manière.
Mais ce que j'ai tendance à faire, c'est de m'assurer que vous pouvez obtenir une version du contrôle de code source, vous n'avez besoin d'exécuter qu'un seul fichier de construction / fichier PowerShell et tout est à nouveau opérationnel.
Pour cela, vous devez:
la source
Je crois que ce dont vous avez besoin dans votre cas est un outil de gestion de configuration . Celui que j'ai utilisé est une marionnette .
Vous citer:
Je l'ai fait avec une seule ligne (assurez-vous que l'utilisateur existe, assurez-vous que le répertoire existe, etc.) ...
S'il s'agit d'ACL Windows, il existe des outils CM spécifiques pour Windows ...
encore une fois, la commande touch unix sur une seule ligne d'un script de marionnette pourrait le faire pour vous.
C'est construit dans de nombreux cadres, un travail cron qui garantit que tout y est autrement?
Je n'en sais rien.
Bien sûr, après avoir écrit votre code de gestion de la configuration, vous souhaiterez peut-être le placer (ou le récupérer dans les systèmes concernés) sur un système de contrôle de version. Vous ne vous en sortirez pas :-).
la source
Il existe un système de contrôle de version ultime qui gère tous les aspects de tous les documents numériques. Il s'appelle Xanadu et a été créé par Theodor Holm Nelson en 1960, avant même que des choses comme les systèmes de fichiers ne soient courantes. Donc, en théorie, tout est parfaitement résolu. En pratique, Xanadu n'a jamais été implémenté comme envisagé par Nelson, mais il a inspiré de nombreux systèmes plus spécialisés, y compris le Web et les systèmes de contrôle de version. Les œuvres de Nelson valent toujours une lecture fraîche - et elles peuvent répondre à la question de savoir pourquoi il n'y a pas de VCS général qui gère tous les aspects.
la source