Bazaar VCS (http://www.bazaar-vcs.org) est une alternative à CVS qui a l'avantage d'exister pour maemo (l'O.S. du NOKIA N810). Il est programmé en python et existe pour maemo donc, Linux, Windows (notamment en tant que paquet Cygwin) et accessoirement pour MAC.
bzr (contrairement à cvs) fonctionne en mode décentralisé, bien qu'il existe un mode centralisé (que je compte utiliser).
A noter que tous répertoire gèré par bzr contient un sous-répertoire nommé .bzr.
En plus de bzr, installer les packages python-paramiko et python-crypto pour que bzr puisse fonctionner dans le cadre décrit dans cette page (utilisation du protocole sftp).
Si, en tentant d'utiliser ssh+ftp://… (ou sftp://…), vous obtenez l'erreur
bzr: ERROR: [Errno 0] Error
voir https://bugs.launchpad.net/bzr/+bug/181855. A titre indicatif, et sous réserve de changements, il faut remplacer la ligne 120 dans le fichier …/lib/python2.5/site-packages/Crypto/Util/randpool.ly :
if num!=2: raise IOError, (num, msg)
par :
if num!=2 and num!=0 : raise IOError, (num, msg)
Faire attention à respecter la tabulation d'origine, car je crois qu'elles font partie du langage python (elles ne sont pas ignorées comme dans d'autres langages).
Installer le paquet bzr. Cela installe différents paquets nécessités par bzr, mais la version présente dans Debian etch de bzr lui-même est trop ancienne pour l'usage que je veux en faire. Aussi, j'ai installé la version téléchargeable à http://backports.org/debian/pool/main/b/bzr/. (dpkg –install …).
En ce qui concerne le protocole sftp, l'installation de ssh suffit, il n'est pas nécessaire d'installer un paquet dédié à sftp (la documentation est ambigüe à ce sujet).
Téléchargement avec le navigateur WEB (qui lancera l'installation) du bon paquet à l'adresse http://bazaar-vcs.org/Download.
Bien qu'il semble exister plusieurs interfaces graphiques, je préfère utiliser la version en ligne de commande, à travers la commmnde bzr. En outre, bzr sera utilisé en mode centralisé.
On peut s'identifier auprès de bzr par la commande suivante :
$ bzr whoami "John Doe <john.doe@gmail.com>"
Pour savoir quelle est notre identification, utiliser :
$ bzr whoami
Dans le répertoire destiné à receuillir le repository :
bzr init
Lancer, sur le serveur ou sur un client, la commande suivante :
bzr init-repo --no-trees bzr+ssh://user@server/directory/
puis, à partir d'un client :
bzr push bzr+ssh://user@server/directory/
Sur le client, à partir du répertoire destiné à accueillir localement le repository :
bzr bind bzr+ssh://user@server/directory/
Pour ajouter tous les fichiers d'un répertoire et ses sous-répertoires, lancer :
bzr add
Pour ajouter spécifiquement certains fichier, faire suivre cette commande par la liste des fichiers.
Pour valider les modifications et les répercuter au niveau du serveur, lancer à partir du client :
bzr commit
Pour synchroniser le repository d'un client avec celui du serveur, lancer à partir du client :
bzr update