Dernière mise à jour : Debian 9.6
Ce document décrit l'utilisation de l'outil de gestion des sources utilisé sur le dépôt SourceForge, subversion, pour récupérer les sources d'un projet. Dans ce qui suit, on suppose que les sources ne sont pas modifiées localement.
Références :
Sommaire
Installer le client de l'outil de gestion de sources "subversion" - Sa version dans les dépôts Debian 9.6 est 1.9.5
$ sudo aptitude install subversion
$ svn --version --quiet
1.9.5
Sur le site SourceForge, trouver le projet dont on recherche les sources. Dans ce qui suit, on prend pour exemple, le projet Imagination (Imagination is a lightweight and simple DVD slide show maker written in C language and built with the GTK+2 toolkit and Cairo featuring 69 transitions. It requires the ffmpeg encoder and libsox to export the slideshow.).
Dans le cas présent, le projet est à l'adresse : https://sourceforge.net/projects/imagination/.
Cliquer sur l'onglet Code et visualiser l'architecture générale du projet. Généralement
la version en cours de développement est disponible dans un répertoire nommé "trunk",
les versions stables précédentes sont dans un répertoire nommé "tags"
les copies divergentes de développement sont disponibles dans un répertoire nommé "branches"
Noter l'adresse de l'adresse de la racine du dépôt pour le code :
https://svn.code.sf.net/p/imagination/code/
La première étape consiste à créer localement une copie de travail d'un répertoire distant
$ svn checkout <URL_répertoire_distant> <répertoire_local>
svn est le nom de la commande en ligne de subversion
checkout extrait le répertoire dont l'adresse est spécifiée
<URL_répertoire_distant> , par exemple, pour la version 3.1 de la dernière version stable (donc dans le répertoire tags)
https://svn.code.sf.net/p/imagination/code/tags/3.1
<répertoire _local> est le nom (arbitraire) du répertoire local qui sera créé par subversion et qui contiendra une copie du répertoire distant, si <répertoire_local> est absent, un répertoire local du même nom que le répertoire distant sera créé.
Exemple, création locale d'une copie du répertoire trunk
$ svn checkout https://svn.code.sf.net/p/imagination/code/trunk
Noter dans le répertoire local, la présence
des sources d'une part
d'un répertoire .svn d'autre part, dans lequel subversion note l'adresse du répertoire distant, l'historique des modifications, ... Désormais les commandes tapées dans le répertoire de travail (et ses sous-répertoires) seront relatives au répertoire distant correspondant
Lorsque des modifications ont été effectuées dans le répertoire distant, pour mettre à jour la copie de travail
$ svn update
Seules les sources présentes (ou qui étaient présentes) dans le répertoire distant seront mises à jour. Si des ajouts ont été effectués dans le répertoire local, par exemple des configurations avec ./configure ou une compilation avec make, ces ajouts ne seront pas modifiés.
Chaque évolution du projet distant est identifiée par un numéro de révision (une révision comprend généralement plusieurs modifications de fichiers).
$ svn log
------------------------------------------------------------------------
r635 | gt67 | 2018-10-14 19:31:26 +0200 (dim. 14 oct. 2018) | 1 ligne
Tagged release 3.1
------------------------------------------------------------------------
r634 | gt67 | 2018-10-14 19:17:33 +0200 (dim. 14 oct. 2018) | 3 lignes
Deleted useless sample_ss folder from the repository.
.......
La dernière révision du projet est donc r635 (version 3.1)
Afficher la révision 632 - Cette révision appartient à la liste des révisions du répertoire, elle s'affiche
$ svn log -r632
------------------------------------------------------------------------
r632 | gt67 | 2018-10-08 23:38:32 +0200 (lun. 08 oct. 2018) | 3 lignes
Made Imagination to export faster. Not as fast as diaporama but definitely faster than previous revisions.
Got rid of low quality preview code.
------------------------------------------------------
Afficher la révision 636 - Cette révision n’appartient pas à la liste des révisions du répertoire, elle ne s'affiche pas
$ svn log -r 636
------------------------------------------------------------------------
Afficher les révisions 500 à 550 (qui appartiennent à la liste des révisions du répertoire)
$ svn log -r 500:550
Afficher les révisions 1 à la dernière (qui appartiennent à la liste des révisions du répertoire)
$ svn log -r 1:HEAD