Tout savoir sur WordPress

VersionPress : versionner son site WordPress en toute sérénité

Versionner un site est devenu incontournable pour un développeur de thème, et paradoxalement il est souvent compliqué d’avoir un process propre avec WordPress. VersionPress est un plugin WordPress open source en développement qui pourrait bien nous simplifier la vie.

VersionPress va vous permettre de garder une trace d’absolument tout ce qui a été fait et modifié sur un site, avec une possibilité de retour en arrière d’un simple clic. Et de ce que j’en ai essayé, c’est vraiment très efficace.

VersionPress = WordPress + Git

VersionPress se base entièrement sur le protocole Git, qui permet de versionner votre code. Pour les débutants qui nous lirait, cela permettrait, comme dans un jeu vidéo, de créer des points de sauvegardes, afin de pouvoir garder un historique des évolutions de son code et revenir en arrière si besoin.

VersionPress ne va pas seulement garder un historique de vos modifications de code, mais aussi de toutes les actions que vous allez faire dans le CMS : ajouter, modifier une page, activer une extension, changer ses paramètres …

Toutes ces modifications seront listées dans le menu VersionPress de votre administration :

versionpress-rollback

A tout moment vous pourrez :

  • Annuler une action en particulier
  • Revenir à un état antérieur du site

Cela pourrait s’avérer pratique par exemple si votre client a cassé une mise en page et que vous voulez rattraper le coup sans avoir à restaurer complètement la base de données.

Attention : 

Le fait de versionner ne vous élimine pas le besoin de faire des sauvegardes régulières de votre site.

Mise en place de VersionPress

Avant de commencer je tiens à préciser qu’à l’heure ou j’écris ces lignes, le projet n’est pas encore totalement finalisé, du coup faites attention si vous l’utilisez en production.

1. Installation

Rendez-vous sur le site officiel de VersionPress ou directement sur le répertoire Github afin de télécharger la dernière version de l’archive. (Lors de la rédaction de cet article, le projet n’étant pas fini, l’extension n’était pas disponible sur le répertoire officiel des extensions de WordPress)

Décompressez l’archive fraichement téléchargée et mettez-là dans votre dossier wp-content/plugins. Depuis votre administration activez la. Un message viendra indiquer qu’elles est bien installée mais pas encore opérationnelle.

versionpress-activate

Cliquez sur Finish the activation

2. Configuration du répertoire Git

Ici pas trop de difficultés, c’est l’extension qui s’occupe de tout. Après un rapide check-up vérifiant que vous avez tout les prérequis nécessaires à la mise en place du répertoire, cliquez sur Activate VersionPress.

versionpress-activation

Vous pouvez accessoirement indiquer un nom d’environnement, par exemple local.

VersionPress s’occupe ensuite du reste et initialise le repo Git :

versionpress-git

Et voilà ! VersionPress est en place. Essayez de faire quelques manipulations sur votre site et rendez-vous dans le menu VersionPress en haut à gauche de votre admin.

Observer les modifications et revenir en arrière

Après quelques manipulations, vous verrez la liste de vos dernières actions :

versionpress-rollback

Libre à vous d’annuler une action ou retourner à un point antérieur !

Vous pourrez même comparer la différence d’état entre le site actuel et une action antiérieure (faire un diff, dans le jargon) :

versionpress-compare

Et bien entendu, la base du versionnement consiste à traquer les modifications faites dans les fichiers. Voici donc le diff du fichier header.php que j’ai modifié :

versionpress-filechange

Pas mal non ? Pour les changements effectués sur les fichiers il faudra manuellement faire un commit via votre logiciel Git préféré, ou en ligne de commande.

Du côté du client Git habituel

En fait ce que vous voyez ici, ce n’est ni plus ni moins que l’historique git, que vous pouvez observer en ligne de commande, ou si comme moi, vous êtes allergique, avec un logiciel attitré (Tortoise, client Git officiel, Tower…)

git-history-versionpress

Du coup vous pouvez voir comment sont gérés les états d’historique des interactions dans la base de données : Ce sont des fichiers stockés dans wp-content/vpdb/posts/  qui contiennent les instructions nécessaires.

Versionner les fichiers, mais aussi le contenu

VersionPress permet donc de garder un historique des changements dans les fichiers mais aussi dans la base !

Voici donc un avantage majeur de VersionPress : contrairement à un versionnement habituel où l’on ne “regarde” que les fichiers, VersionPress s’occupe ici de versionner absolument tout : le contenu (pages, articles, taxonomies), les paramètres du CMS, l’activation/désactivation d’extension… et c’est vraiment génial !

Mon workflow habituel consistait à versionner le dossier WordPress, et migrer la base de données local / en ligne via l’extension Migrate DB Pro, puis faire des sauvegardes avec Updraft plus ou le tout nouveau SecuPress.

Avec un tel outil je pense que l’on s’approche d’un workflow beaucoup plus poussé, et plus propre.

Staging vers Production

VersionPress ne s’arrête pas là, et il permet de simplement dupliquer votre site pour faire une version de préprod, de production… Et les fusions de base de données se font donc très simplement. Je n’ai pas encore eu l’occasion de tester cette fonctionnalité, mais c’est clair que c’est pour moi l’un des atouts majeurs de VersionPress qui permettrait de simplifier énormément le workflow de passage d’un site en production.

Que pensez-vous de cette extension ? L’utiliserez-vous dans votre workflow ?

[smoothie_button url=”https://versionpress.net/” label=”Site VersionPress”]

Cet article a été publié il y a 2816 jours - Il n'est peut être plus à jour !

Article écrit par Maxime BJ

Développeur, bloggeur et formateur Web spécialisé WordPress. 36 ans. Grenoblois. Co-fondateur de WPChef, l’organisme de formation WordPress.

Co-fondateur de WPChef, la formation WordPress pour les débutants. Vous pouvez me rencontrer lors d’événements tels que les WordCamp. Traducteur Français de l’extension Advanced Custom Fields. Je m’occupe un site pour apprendre l’informatique aux débutants gratuitement.

20 Commentaires

  1. Bonjour Maxime,
    Merci pour ce retour intéressant.
    As-tu pu tester Revisr, un autre plugin qui associe Git à WP ? Les as-tu comparer ? Qu’est-ce qui ferait pencher la balance en faveur de VersionPress selon toi ?

    • Non en effet j’ai pas comparé avec les autres pour l’instant et je n’ai pas tout testé. J’ai simplement aimé le fait que VersionPress passe en Open Source récemment et du coup je l’ai essayé. J’essaierais aussi Revisr et les autres prochainement je pense :)

    • Je sais que les gars d’O2Switch sont toujours motivés pour apporter un peu d’innovation dans leurs offres, mais actuellement je pense qu’un mutu, peu importe l’hébergeur, ne te permet pas de le faire. Je sais que sur WPEngine Git marche du tonnerre

  2. Bonjour , j’avais beaucoup aimer en local mais jamais réussi à le faire fonctionner en ligne. Sur un de mes sites avec +2000 articles je n’ai jamais pu faire l’activation de base et sur un site plus modeste la version de Gît c’était apparemment pas suffisante dans les prérequis.(la faute à 1&1?) Du coup si tu as une idée de comment régler ces problèmes je suis preneur ! Merci

    • Sur mutualisé ouais c’est la merde, et peut être même pas possible pour l’instant. A voir comment ça peut évoluer

  3. Sur le papier, Versionpress semble répondre à l’éternel problème de WordPress : à savoir un worflow trop dispersé.

    A voir s’il tient ses promesses … Et à quel prix ;-)

    • Hi Cyril, (I’m using GTranslate to read this so pardon me if I misunderstood something), VersionPress is OSS and is going to be free forever (both as in speech and in beer). We have no plans to monetize it directly. There will be some companion services like helping people who have trouble running Git on their servers etc. but all is going to be optional and the core project will be free and stay free forever.

      Borek (VersionPress developer)

  4. Ça a l’air bien sur le papier, mais j’ai voulu l’installer sur un WordPress tout simple sur serveur dédié et ça refuse de s’activer. À re tester à un stade plus avancé.

  5. Hello !
    super intéressant, j’ai eu un pbm y’a peu, ça m’aurait été bien utile.
    Cependant, lors de l’installation, il me dit que je n’ai pas la bonne version de git (1.7 au lieu d’1.9).
    Tu sais comment changer ça ? Y’a un risque ?

    Bien à toi,

    • Hey ! thanks for the comment :) Glad you find the article cool ! Nice work with VersionPress. I think the biggest problem right now is that people mostly use simple hosting without git inside. But there is nothing you can do about it.

  6. Je découvre ce plugin (hi hi c’est mal je sais)
    Est ce possible de versionner un seul répertoire (du genre le répertoire du thème) ?

    • Je crois pas non, du coup dans ce cas je te conseille comme moi de plutôt utiliser git juste pour le thème (sur mac : Tower pour éviter la ligne de commande et Bitbucket pour héberger en ligne) Grenoblois j’ai vu sur ton site ? Tu passeras nous voir au prochain meetup WP (quand, je sais pas lol)

    • Bitbucket j’y avais pensé mais je stocke rien sur mon poste, j’ai un serveur de dév sur mon réseau local avec git dessus. J’ai besoin de versionner un répertoire précis et exclure certains sous répertoire (du genre le cache du compilateur sass).