Suivi de version avec Subversion (SVN) pour les débutants

Table des matières:

Suivi de version avec Subversion (SVN) pour les débutants
Suivi de version avec Subversion (SVN) pour les débutants

Vidéo: Suivi de version avec Subversion (SVN) pour les débutants

Vidéo: Suivi de version avec Subversion (SVN) pour les débutants
Vidéo: How to Dual Boot Ubuntu 20.04 on Windows 10 | Legacy | MBR | WITHOUT DATA Loss | Detailed 2021 Guide - YouTube 2024, Novembre
Anonim
Avez-vous déjà souhaité travailler sur un projet avec la possibilité de suivre vos modifications et de les annuler? How-To Geek explique How-To utilise le système de suivi de version très répandu, Subversion (a.k.a SVN).
Avez-vous déjà souhaité travailler sur un projet avec la possibilité de suivre vos modifications et de les annuler? How-To Geek explique How-To utilise le système de suivi de version très répandu, Subversion (a.k.a SVN).

Image clairement ambiguë

Prélog

Ce guide aura pour but de vous donner la possibilité d’utiliser le client Subversion en général et, si vous en avez un, sur votre routeur * DD-WRT. Ce guide n’est en aucun cas un guide définitif pour Subversion et de nombreuses informations sont disponibles sur le livre rouge de Subversion. Ce guide est uniquement destiné à vous donner une réponse abrégée aux questions les plus élémentaires.

Vue d'ensemble

Il peut exister de nombreuses raisons pour lesquelles vous souhaitez pouvoir «extraire» le dernier code d'un projet logiciel utilisant un système de gestion des versions. Cela vous permet de bénéficier des dernières modifications non encore publiées, de l'aide pour les tests et même du développement. Dans ce guide, nous allons passer en revue une terminologie de base de SVN, montrer comment installer le client SVN sous Linux, Windows et si vous en avez un de votre routeur DD-WRT activé pour OPKG. Nous avons également inclus un exemple de projet que vous pouvez commander et utiliser pour ledit routeur.

Qu'est-ce que Subversion?

Subversion n'est en aucun cas le seul système de contrôle de version existant et des alternatives incluent Git (créé par Linus Torvalds, fondateur du noyau Linux), Mercurial et PerForce, pour n'en nommer que quelques-uns. Cela dit, c’est un des logiciels libres, il est mature et est largement utilisé dans le monde entier.

Du livre rouge de la subversion:

Subversion is a free/open source version control system (VCS). That is, Subversion manages files and directories, and the changes made to them, over time. This allows you to recover older versions of your data or examine the history of how your data changed. In this regard, many people think of a version control system as a sort of “time machine.”

Note: ce livre est la collection ultime de connaissances sur Subversion et il vous est conseillé de vous y référer sur tous les sujets liés à Subversion.

Qu'est-ce que la gestion des versions?

La gestion des versions est un processus dans lequel l'état d'un projet à un moment donné est enregistré. Ce type de procédure est souvent utilisé pour gérer le développement logiciel, afin que le travail puisse continuer à améliorer le projet ou à ajouter des fonctionnalités, tout en permettant de suivre ce qui a changé depuis le dernier point de «sauvegarde» global. Pour élaborer, ce type de procédure peut être utile pour une seule personne mais plus encore pour un groupe de personnes travaillant sur le même projet. En effet, lorsque vous travaillez sur un projet en groupe, il existe une répartition des responsabilités et différentes personnes modifient différents aspects du projet. Sans mécanisme de gestion des versions, il serait très difficile de garder tout le monde synchronisé sur les dernières modifications apportées par tous les autres.

Terminologie

Le référentiel Le référentiel est l'emplacement où toutes les données de tous les endroits sont enregistrées. Dans le monde de la subversion, du point de vue du client, c’est le serveur qui contient la base de données du projet. Cette base de données contient tous les fichiers qui font partie du projet avec toutes leurs versions antérieures.

Révision

Lorsqu'un référentiel est créé, il reçoit le numéro de révision zéro (0). Ce nombre est incrémenté d'un (1) chaque fois qu'une validation est effectuée. Le numéro de révision est global pour le référentiel. En d'autres termes, il n'y a pas de numéro de révision individuel pour les fichiers individuels dans le référentiel, même si rien n'a changé dans ce fichier pour ce commit spécifique.

La copie de travail

Une copie de travail est une copie locale (ou «extraction») d'une version particulière. Habituellement, cette version, une fois extraite, est la “dernière” version (également appelée “tête“), mais une version précédente peut être demandée. L'utilisateur peut faire avec la copie locale tout ce qu'il désire, sachant qu'au pire, il pourrait simplement extraire à nouveau le code. De plus, cette copie est «privée». En effet, tant que vous n'aurez ni mis à jour ni validé votre copie, vous ne verrez ni les modifications d’autres personnes, ni les vôtres.

Mise à jour et résolution de conflits

Une copie de travail locale peut être mise à jour. Autrement dit, si vous avez "extrait" une certaine version et que, pendant que vous travailliez, la version du référentiel a été mise à jour, vous pouvez mettre à jour votre copie de travail au plus tard. En fait, le serveur vous empêchera de valider vos modifications avant la mise à jour vers la dernière version pour correspondre au référentiel. Ceci est fait afin de vous obliger à résoudre les conflits localement, avant même de penser à valider des modifications dans le référentiel.

Fusionner

La fusion fait référence au processus par lequel le code modifié est fusionné en une seule version. Cela peut également impliquer la résolution de conflits.

Commet

La validation est le processus dans lequel les modifications que vous avez apportées à votre copie locale seront fusionnées dans le référentiel. C’est la partie la plus périlleuse du processus, car c’est ici que les modifications que vous avez apportées pourraient avoir un impact sur les autres utilisateurs du même référentiel. C’est la raison pour laquelle cela est généralement fait après mûre réflexion, avec le consensus de l’équipe et après la résolution des conflits de fusion.

Le flux de travail

Le flux de travail le plus élémentaire du point de vue de l’utilisateur lorsque vous utilisez Subversion est le suivant:

1. Vérifiez le code existant (généralement la "tête"). 2. Apportez des modifications, ajoutez des fichiers et développez généralement le code. 3. Effectuez une mise à jour vers la dernière version pour vous assurer que votre copie locale est synchronisée avec les mises à jour du référentiel. 4. Fusionnez et résolvez localement les conflits si nécessaire. 5. Validez les modifications fusionnées dans le référentiel. 6. Allez à l'étape 2.

Permet de craquer

Installer le client

Pour pouvoir utiliser Subversion, vous devez installer le client sur votre ordinateur.

Sur Linux

Vous devez seulement installer le paquet. Sur Ubuntu / Mint, cela se ferait avec:

sudo aptitude install subversion

Sur DD-WRT

Si vous avez suivi la procédure «Comment installer des logiciels supplémentaires sur votre routeur domestique (DD-WRT)», vous pouvez installer le client svn en émettant simplement:

opkg update; opkg install subversion-client

Sur Windows

Bien que nous, les grands connaisseurs, puissions commencer à oublier que l'interface graphique existe même parfois, tout le monde ne l'a pas. Si vous souhaitez utiliser un client Windows pour vous connecter à un référentiel SVN, celui de loin le plus populaire est «Tortoise». Pour l'utiliser, il suffit de télécharger le programme et de l'installer à la manière habituelle «suivant, suivant, terminer».

Créer le "référentiel"

Bien que nous ne donnions pas beaucoup de détails sur la configuration d’un serveur de sous-version dans ce guide, l’alternative de Google n’est pas un mauvais début pour l’utilisateur novice. Pour créer un référentiel Google:

  • Rendez-vous sur le site Web d'hébergement de Google Code et «créez» un nouveau projet.

    Image
    Image
  • Dans la page suivante, remplissez les champs obligatoires et sélectionnez le type de «système de contrôle de version» à subversion.

    Image
    Image

    Remarque: vous voudrez peut-être jeter un coup d'œil sur la différence entre les licences offertes par Google avant de sélectionner une licence pour le projet.

  • Cliquez sur «Créer un projet».

" Commander" votre copie de travail

Une fois votre projet créé, vous devriez pouvoir trouver les instructions pour y accéder dans l’onglet «Source».

La bonne chose à propos du code Google, c’est qu’il permettra une version anonyme en lecture seule de votre projet. Si vous ne souhaitez pas gérer les problèmes liés à la création de votre propre projet, vous pouvez consulter anonymement le référentiel de cet auteur.
La bonne chose à propos du code Google, c’est qu’il permettra une version anonyme en lecture seule de votre projet. Si vous ne souhaitez pas gérer les problèmes liés à la création de votre propre projet, vous pouvez consulter anonymement le référentiel de cet auteur.

Une remarque à propos du projet hotfortech: Ce projet a pour vocation d’emballer les fonctionnalités ajoutées à DD-WRT dans How-To Geek (que j’utilise personnellement), ainsi que quelques ajustements personnels. Bien que ce projet soit conçu pour fonctionner en conjonction avec les articles publiés ici sur howtogeek, il reste mon projet privé. C’est-à-dire qu’il est parfaitement adapté à mon routeur Buffalo (architecture AR71xx), à mes caprices personnels et qu’il est sujet au borkage occasionnel.

Sous Linux / DD-WRT

Créez le répertoire dans lequel travailler, par exemple sur DD-WRT, qui pourrait être:

mkdir -p /jffs/svn; cd /jffs/svn

La commande complète sous Linux comprend la commande SVN elle-même, la directive «checkout», l’adresse du référentiel et le répertoire de contrôle également. Créez un répertoire vide et exécutez la commande ci-dessous:

svn checkout https://hotfortech-dd-wrt.googlecode.com/svn/trunk/ hotfortech-dd-wrt-read-only

Notez que dans l'exemple ci-dessus, la version en lecture seule est en cours d'extraction. Si vous avez choisi de créer votre propre référentiel, vous devrez utiliser le lien httpS.

Sur Windows

Tortoise étant une extension du shell, vous devrez utiliser le menu contextuel de l’explorateur de fichiers Windows (clic droit) pour l’utiliser. En fait, si vous essayez de l'invoquer à partir du menu Démarrer, vous obtiendrez:

Image
Image
  • Créez un répertoire vide.
  • Faites un clic droit dessus pour faire apparaître le menu contextuel.
  • Sélectionnez «SVN Checkout»:

    Image
    Image
  • Copiez et collez le lien du projet (si vous en avez un) dans la zone de texte «URL»:

    Image
    Image
  • En fonction de la taille de votre projet, cela peut prendre un certain temps, mais lorsque la "Commande" est terminée, vous devriez voir quelque chose comme:

    Image
    Image
  • Vous pouvez commencer à développer.

Mettre à jour et fusionner votre copie de travail Si vous travaillez sur le code avec des collègues ou si vous le mettez à jour à partir de plusieurs emplacements (ordinateur portable, ordinateur de bureau ou même routeur), vous devrez mettre à jour votre copie de travail avant de valider les dernières modifications.

Sous Linux / DD-WRT

La commande pour faire cela sur ces systèmes POSIX est simplement:

svn up

Sur Windows

  • Faites un clic droit dans le répertoire de travail et sélectionnez “Mise à jour SVN”:

    Image
    Image
  • Si vous rencontrez des conflits, essayez de suivre les instructions à l'écran et utilisez votre jugement pour savoir quoi faire à ce sujet.

"Commit" vos modifications Voilà, vous devriez être libre de tout conflit et prêt à mettre à jour le référentiel avec vos modifications. Le point à noter ici est qu’il est courant d’ajouter un message «log» au commit, afin de pouvoir facilement rappeler pourquoi les modifications ont été apportées. En fait, le référentiel de Google en fait une condition préalable obligatoire pour s’engager.

Sous Linux / DD-WRT

C’est un exemple de la validation que j’ai faite dans le projet hotfortech qui l’a fait passer à la version 19:

svn commit -m “updated to reflect new ant-ads pack link”

Sur Windows

  • Faites un clic droit dans le répertoire de travail et sélectionnez “SVN Commit”:

    Image
    Image
  • Vous devriez être accueilli par une fenêtre vous permettant de noter un message de journal:

    Image
    Image
  • Cliquez sur OK et lorsque vous êtes invité à entrer un mot de passe, indiquez le mot de passe généré par Google.
  • Si le commit a réussi, vous devriez voir quelque chose comme:

    Image
    Image
  • Ça y est, vous devriez pouvoir vous engager comme un BOSS.

Remarques finales Cela devrait être suffisant pour vous aider à démarrer. Nous vous conseillons de lire les ouvrages de référence SVN pour mieux comprendre tous les usages, options et mises en garde de SVN. Nous vous rappelons également (encore une fois) que la subversion n'est PAS le seul système de contrôle de version disponible et que GIT (créé par Linus Torvalds, fondateur du noyau Linux) semble gagner en popularité ces dernières années.

Si vous décidez d’exécuter «running-config.sh» à partir du projet hotfortech sur votre routeur, vous constaterez qu’il va être installé pour vous: le pack anti-ads-pack, le script geek-init Opkg, ainsi que des choses telles que la totalité de GNU «ls», «moins», «BASH» et plus.

/jffs/svn/hotfortech-dd-wrt/running-conf.sh

Plus de fonctionnalités sont en attente et seront ajoutées à l'avenir.

Les administrateurs système coderont leur manière de sortir du codage.

Conseillé: