Débuter avec Subversion, Git ou un système de contrôle de version similaire pour conserver un historique de mes fichiers? [fermé]

31

Je me rends compte que cela peut être une question générale à la surface, mais je cherche des exemples spécifiques de configurations / workflows que les gens utilisent pour conserver un historique de version des fichiers modifiés sur un site WordPress. Par exemple, lors du développement d'un site (et même après sa mise en ligne), j'apporte souvent des modifications aux fichiers CSS et PHP, mais je n'ai pas un excellent moyen de revenir aux anciennes versions de ces fichiers. Pour mes besoins, effectuer des modifications sur une installation de développement local, puis copier ces modifications sur le site en direct est souvent plus difficile que je ne le souhaiterais. Des suggestions sur la façon de commencer à utiliser un outil de gestion des versions pour suivre les modifications apportées aux fichiers sur un site en ligne?

Travis Northcutt
la source
1
Juste curieux, Mike - pourquoi le titre est-il édité? Dans mon esprit, les titres des questions devraient suivre les règles de bonne grammaire. C'est peut-être une bonne discussion pour les méta ...
Travis Northcutt
Vous faites déjà partie de la discussion sur meta, tnorthcutt. :)
Annika Backstrom

Réponses:

14

Je ne sais pas combien vous savez sur l'utilisation du contrôle de version, mais j'ai récemment changé de SVN à Git et je trouve ça génial!

Bien que cela dépende du serveur de votre site en ligne, Git est installé (ou vous le permet). J'ai également une configuration Git sur le serveur en direct, exécutant une branche appelée quelque chose comme production. Chaque fois que je termine d'implémenter / réparer quelque chose localement, je le fusionne dans la productionbranche, puis SSH dans le serveur du site en direct et j'apporte les modifications. Beats faisant glisser des fichiers sur FTP lorsque vous ne savez jamais si vous écrasez des modifications, etc.

Je recommanderais de mettre un peu de temps à se familiariser avec Git (si vous ne l'avez pas déjà fait), je le trouve beaucoup plus facile et moins compliqué que SVN en ce qui concerne la modification / l'ajout de charges de fichiers (et contrairement à SVN, cela ne met pas stupide .svndossiers partout ).

Je suis sur un Mac, donc désolé si rien de tout cela ne s'applique, mais j'utilise Coda comme éditeur de code et j'ai installé Git via les ports (en utilisant Porticus).

Si je devais tout remettre en place, je ferais:

  1. Installer Coda

  2. Installez Porticus (qui vous obligera à installer des ports, mais il y a des informations sur cette page)

  3. Une fois que vous avez installé Porticus, ouvrez-le, recherchez "git-core" et installez-le.

  4. Téléchargez et installez GitX 7-5

  5. Il y a un bon guide sur la configuration d'un dépôt git ici , mais à la base: 1. Ouvrez Terminal. 2. cdà l'endroit où vous souhaitez que votre site réside. $: mkdir mysite && cd mysite3. $: git initet c'est tout! Si vous ajoutez des fichiers à ce dossier, passez à l'étape suivante

  6. Une fois que vous avez configuré un référentiel GIT localement (article ci-dessus), si vous ouvrez ce répertoire dans GitX, vous pourrez valider des choses, etc., etc.

Tout configurer sur le serveur peut être un peu délicat, j'ai un MediaTemple et un compte Dreamhost qui ont tous deux GIT prêt à l'emploi. Le lien de l'étape 5 vous indique comment ajouter un référentiel distant, vous n'avez donc pas à le faire tant que vous ne souhaitez pas intégrer votre site en direct dans l'équation. Je recommanderais que tout fonctionne localement en premier (contrairement à SVN, GIT ne nécessite pas de référentiel distant, vous pouvez donc tout faire sur votre machine pour le moment).

Joe Hoyle
la source
Pourriez-vous entrer plus en détail sur ce qu'est votre flux de travail, quels outils / éditeurs vous utilisez, comment vous configurez GIT sur votre serveur en direct, etc.? J'espère une bonne étape par étape pour savoir comment configurer avec quelque chose comme GIT.
Travis Northcutt du
J'ai ajouté quelques étapes pour commencer, bonne chance!
Joe Hoyle
De plus, avez-vous un bon tutoriel que vous recommandez pour GIT? Je suis sur Subversion et je veux changer depuis des siècles à cause de la fragilité de Subversion (et aussi à cause de ces fichus dossiers .svn aussi! :)
MikeSchinkel
Joe, merci d'avoir ajouté les détails. Je suis sur un PC, mais je peux chercher des outils équivalents, et cela devrait être utile aux autres utilisateurs de Mac.
Travis Northcutt du
Je ne peux que recommander git. Ça bouge juste. Quel que soit le système d'exploitation. Je l'utilise fréquemment sur Linux et sur Windows (pour ainsi dire: tous les jours maintenant). sur les fenêtres il y a un git bash. Ce qui est bien, c'est que vous avez toutes les commandes Linux à portée de main directement: code.google.com/p/msysgit
hakre
8

J'utilise SVN pour le contrôle de version avec tout ce que je fais dans le développement WordPress. En fait, j'ai commencé comme ça parce que j'avais besoin de SVN pour le développement de plug-ins ... une fois que j'ai commencé, c'était une extension naturelle de continuer à utiliser SVN pour les thèmes et les scripts personnalisés sur les sites clients.

Plug-ins

Étant donné que les plug-ins sont déjà hébergés sur le serveur de WordPress, je vérifie simplement un plug-in directement dans le /wp-content/plugins/répertoire de mon installation WordPress locale (je lance WAMP sur ma boîte de développement). Ensuite, j'apporte des modifications à ma copie locale et, lorsqu'elle est prête pour showtime, je m'engage dans le référentiel. C'est un processus fluide là-bas, aucun téléchargement / téléchargement et vérification instantanée que mes modifications ont fonctionné.

Des thèmes

Les thèmes sont un peu différents, en particulier lors de la construction pour un client. Je crée un référentiel local (j'ai une Rpartition sur mon disque dur spécialement à cet effet) et vérifie le référentiel vide directement dans mon /wp-content/themesrépertoire. Ensuite, j'apporte les modifications nécessaires et je développe jusqu'à ce qu'il soit prêt, en validant les révisions au fur et à mesure.

Lorsque je suis prêt à publier le thème sur le serveur de production d'un client, j'exporte le référentiel, le zippe et utilise les thèmes natifs >> Ajouter une nouvelle fonctionnalité dans WordPress. Cela fonctionne également avec les plug-ins personnalisés (qui ne sont pas hébergés par WordPress).

Outils

Comme je l'ai dit, j'utilise WAMP sur ma machine locale pour exécuter une installation de développement de WordPress. Cela fonctionne parfaitement sur ma box et me permet d'exécuter autant d'instances de WordPress que nécessaire pour un projet particulier.

Pour SVN, j'utilise Tortoise SVN . Il est gratuit, remarquablement facile à utiliser et s'intègre à la structure de fichiers et de commandes de Windows. La mise à jour, la validation et l'exportation sont toutes simples, faites un clic droit, sélectionnez des opérations de commande. L'utilisation de "Exporter" vous permet d'envoyer le dossier entier (sans les .svndossiers gênants ) directement à n'importe quel emplacement de votre choix - j'exporte fréquemment vers le bureau. Zipper le dossier est également une opération de clic droit, et WordPress gère le téléchargement.

Le transfert manuel de fichiers peut être compliqué, en particulier si vous continuez à modifier un fichier mais pas tous. Si vous placez FTP sur le répertoire entier avec "écraser tout" sélectionné, il est beaucoup plus facile de remplacer les anciens fichiers (et vous n'avez pas à garder une trace de ceux qui ont changé et de ceux qui ne l'ont pas été). C'est comme l'ancienne installation de 5 minutes de WordPress - il suffit de tout remplacer par la nouvelle version.

EAMann
la source
3

Personnellement, je pense que c'est un exercice amusant d'installer SVN / GIT et de le gérer, mais si vous pouvez balancer 15 $ par mois, Beanstalk vaut chaque centime. Ils gèrent l'ensemble du serveur pour vous. http://beanstalkapp.com/ Les outils de déploiement FTP sont impressionnants. La mienne déploie automatiquement la version sur mon serveur de transfert lorsque je valide par exemple

Une autre façon d'obtenir des versions de fichiers personnels consiste à utiliser la boîte de dépôt. Chaque fois que vous enregistrez un fichier dans votre boîte de dépôt, il suit la version et vous pouvez restaurer une version précédente ultérieurement. Vous et un autre développeur ou groupe pouvez partager un dossier de boîte de dépôt. Certes, cela ne fait pas de troncs, de fusions, etc., mais il est très facile pour une équipe distribuée de travailler sur un site Web. Vous ne pouvez pas vraiment travailler sur les mêmes fichiers à la fois.

Nous conservons notre copie de travail SVN dans Dropbox, puis je valide les fichiers lorsque l'heure est en écriture. Mes concepteurs ne valideront pas de fichiers ou ne traiteront pas avec SVN, c'est donc la contrainte.

Je préfère SVN parce que je n'ai pas besoin de toutes les liaisons pour lesquelles GIT est si génial et il existe de meilleurs outils GUI disponibles pour SVN.

Andrew
la source
2

J'aime beaucoup Aptana , sa subversion est intégrée et vous pouvez vous connecter à votre serveur avec ftp / sftp facilement et pousser des fichiers vers le haut, une autre grande fonctionnalité qu'il a est que si vous créez un nouveau projet php et incluez le "tout" WordPress dossier (avec wp-admin, wp-includes) vous obtenez l'achèvement du code dans vos fichiers de thème.

Dans ma configuration, le dépôt est local.

Amit
la source
Qu'est-ce que le "repo"?
Travis Northcutt du
2
"repo" est un raccourci courant pour "repository".
Trevor Bramble
"repo" = "repository"
MikeSchinkel
j'utilise également git ( plugin egit ) à l'intérieur d'Aptana (sous win et linux), fonctionne très bien et facilement.
bueltge
1

Vous demandez "mais je recherche des exemples spécifiques de configurations / workflows que les gens utilisent pour conserver un historique des versions des fichiers modifiés sur un site WordPress" mais vous mentionnez également des produits :)

Vous obtenez ci-dessus comme réponse une liste d'outils et quelques bonnes pratiques mais je me concentrerai ici sur les workflows: ILS NE SONT PAS SPÉCIFIQUES WORDPRESS:

Mais pour les exemples / configurations / workflows généraux:

Pour commencer: il existe des modèles CM, donc indépendants de l'outillage. Google sur CM Patterns, beaucoup de livres là-bas, même les communautés de wiki, par exemple http://www.cmcrossroads.com/forums .

Il existe également des guides sur la mise en place d'une stratégie de diffusion valide (stratégie de diffusion Google), etc ...

Je ne pense pas qu'il y ait quelque chose de spécial dans les déploiements WordPress par rapport à CM Management, y compris le développement parallèle distribué sur les grandes usines Siebel, SAP, Informatica, Java, etc. C'est vraiment presque par défaut.

Ce qui manque, je pense, c'est que personne n'a encore écrit un CMplan pour le développement WordPress (IEEE). Une fois que quelqu'un l'a fait (outil indépendant). Je pense que les exigences peuvent être remplies avec n'importe quel outil.

Je pense que la raison pour laquelle le plan n'a pas été écrit est que presque toutes les implémentations WordPress sont toujours effectuées par 1 personne avec une configuration de développement-production simple, donc pas avec plusieurs développeurs / concepteurs en phase de construction devant déployer différentes versions qui s'exécutent dans le environnement de test, par exemple.

le plan CMP commence par l'identification de tous les CI en d'autres termes: faites une liste de tous les types de CI présents dans une implémentation WordPress, y compris les applications, les plugins, la base de données, la documentation, l'aide, le contenu, les fichiers de configuration, les notes de publication (!), etc. ..). C’est un bon début. Décidez ensuite lesquels vous souhaitez mettre sous CM.

Décidez ensuite des causes des changements sur ces CI, par exemple un appel client pour un correctif de bogue ou une mise à niveau nécessaire. Si c'est bien fait, cela conduit à une situation où vous avez le sentiment que les choses sont sous contrôle.

Des décisions telles que la fusion de la production au développement et la manière de gérer cela font partie de ce chapitre (2 modèles principaux ici) (bien que vous devriez bien sûr essayer de minimiser ces correctifs).

Ce n'est que plus tard que vous recherchez un outil pour faire du CM d'un côté (qui inclut la gestion des versions comme l'un des outils) et un outil de gestion des changements de l'autre côté (qui vous garde sain d'esprit).

Je pense que c'est le meilleur flux de travail pour commencer car, pour autant que je google, personne ne l'a encore fait. Je pense qu'une fois que la première personne a écrit un plan CM WordPress (selon IEEE), toute autre personne WordPress dans le monde peut copier ce plan et faire des ajustements et mettre en œuvre les modèles dans leurs outils.

N'est-ce pas trop de travail / trop lourd: cela dépend si vous avez une entreprise ou non: cela peut vous faire gagner du temps un jour pour avoir un bon plan CM.

edelwater
la source
0

Je suis sur un hôte partagé, donc je ne peux pas installer SVN ou quelque chose comme ça. J'utilise Mercurial pour contrôler la version sur ma machine domestique. J'utilise la synchronisation FTP de Beyond Compare pour garder les dossiers locaux et distants synchronisés.

CAD bloke
la source
0

j'utilise git. c'est simple. vous devez seulement comprendre des commandes simples telles que cloner, comit, pousser, tirer et vous êtes prêt à partir. c'est la base.

Quoiqu'il en soit, si vous utilisez plus Git comme coordonner une équipe pour travailler sur un produit, alors c'est un autre niveau. mais au final, cela valait la peine d'utiliser git ou n'importe quel contrôle de version. il y a réalisable quand la merde arrive.

justjoe
la source