Skip to main content

Impératif - diff-patch-svn-git

Une nouvelle bibliothèque

Exercice 1

La bibiliothèque permet de faire de la manipulation d'automates. L'auteur est Julien Allali. Licence MIT.

Exercice 2

git clone https://github.com/allali/statelib.git

Le système de compilation utilisé est Cmake. Compilable avec

make install

Le système de documentation utilisé est doxygen

Exercie 3

Ce sont les trois lignes suivantes

    install(TARGETS state DESTINATION lib)
install(TARGETS state_static DESTINATION lib)
install(FILES src/state.h DESTINATION include)

Il faut donc réaliser les commandes suivant pour compiler

    cmake -S <path_to_source> -B <path_to_build>
sudo make install

Diff et patch

Exercice 4

Précision du cas de renvoie -1. Pour recompiler la doc

make doc

Exercice 5

La commande nous affiche les différences entre deux fichiers.

diff -r original new

Exercice 6

La commande suivante permet d’analyser tous les fichiers et donne un compte rendu des différences qui sera pas la suite applicable.

diff -rupN statelib statelib_new > patch

Exercice 7

La commande patch permet de fusionner les différences avec un patch

Git

Cette partie présente des évidences sur git, je la passe

SVN

SVN repose sur un système de versionning centralisé. Cela signifie qu’un seul répertoire général existe et tous les utilisateurs y ont accès. Etant donné que les modifications ne peuvent être fusionnées, le système empêche que deux utilisateurs modifient un même fichier simultanément. Ce dernier est attribué au premier internaute qui l’ouvre et il reste protégé des autres utilisateurs tant qu’il n’a pas été fermé. Apache Subversion permet également de charger et de modifier les sous-chemins indépendamment du reste de l’arborescence. C’est ainsi que les droits de lecture et d’écriture sont affectés pour la totalité des chemins aux différents utilisateurs. En outre, Suversion se caractérise par le fait que des répertoires vides, renommés voire déplacés peuvent être enregistrés sans causer de perte dans l’historique.

SVN fonctionne comme git en ce qui concerne les commits et les add. Cependant pour initialiser le dossier il faut réalilser les commandes suivantes.

svnadmin --compatible-version 1.5 create pg106

Attention : on ne travaille jamais directement dans le dépôt mais dans un autre répertoire synchronisé avec le dépôt ! Puis dans le répertoire de travail

svn checkout file://$HOME/.depots/pg106