Bitkeeper
Aujourd'hui, j'ai eu besoin d'utiliser
Bitkeeper dans le cadre de mon stage. Pour ceux qui ne savent pas, c'est un outil de gestion de versions notamment utilisé par les développeurs du noyau Linux. D'ailleurs, son utilisation avait provoqué de nombreux débats à l'époque, en raison du caractère
non-libre de Bitkeeper. Les sources sont disponibles, mais la licence est plutôt restrictive. En fait, il est distribué sous
4 licences différentes.
Je commence par télécharger Bitkeeper. Il faut obligatoirement passer par un formulaire, donner son nom et son e-mail et dire "non, merci, je ne veux pas recevoir vos publicités à deux sous". Je reçois alors un mail contenant le précieux mot de passe pour télécharger le logiciel. Le login n'est autre que
bitkeeper et le mot de passe
get bitkeeper, ça doit donc être le même login/pass pour tout le monde ...
J'installe ensuite la chose, une jolie interface me pose deux ou trois questions, et j'ai enfin la chose installée dans ~/bin/, histoire de pas polluer le système avec ce genre de saletés ;-)
Ensuite, je commence à récupérer un arbre Bitkeeper, en utilisant la commande
bk clone :
bk clone bk:/ /sources.mvista.com/linux-2.5-marvell. Le logiciel mouline pendant un paquet de temps pour récupérer tout le bazar. Si j'ai bien compris, il récupère tout l'historique de tous les fichiers, pour que je puisse en local revenir en arrière, repartir, etc...
Une fois le téléchargement terminé, je m'aperçois qu'il n'y rien dans les répertoires ... pas de fichiers. Ils sont dans un format bizarroïde dans un sous-répertoire SCCS. En fait, il faut faire un
bk get si on veut voir le fichier, et un
bk edit si on veut l'éditer (avec un
bk get il est en lecture seule). Et pour l'éditer, il faut apparemment passer par la commande
bk vi, je n'ai pas encore bien compris pourquoi. Je fais donc deux modifications à la noix dans deux fichiers, juste pour tester et voir comment se passe un commit.
Je tente donc un
bk citool qui lance un outil graphique pour entrer les logs de commit, on peut aussi faire
bk ci pour avoir la même chose en mode texte apparemment. Un truc sympa, c'est qu'on peut entrer un message de log pour chaque fichier, et un message de log pour le changeset complet. Je fais tout ça, et je clique sur le bouton commit. Et là, ça se met à mouliner, puis après ça me dit qu'il est pas content, parce qu'il ne peut pas contacter openloggin.org.
Alors là, je trouve ça louche. Pourquoi il veut contacter ce site quand je committe ? Je vais donc voir sur le fameux
OpenLogging, et j'y lis :
This site contains the changelog information for all projects which use BitKeeper? under the free use license (BKL). The intent is that anyone may watch what is going on in the distributed collection of BitKeeper? repositories worldwide. En gros, dans la version gratuite de Bitkeeper, tu es obligé d'envoyer des changelog à
OpenLogging?, c'est comme ça. C'est super, non ?
Je reviens sur le site de Bitkeeper, pour voir de quoi il retourne, et je tombe sur la licence "gratuite", la fameuse BKL, et j'y lis
non-commercial users must participate in Open Logging and may receive a reduced level of support. Et dans le chapitre 3 de la
licence BKL, on trouve :
3. LICENSEE OBLIGATIONS
(a) Maintaining Open Logging Feature: You hereby warrant
that you will not take any action to disable or oth-
erwise interfere with the Open Logging feature of the
BitKeeper Software. You hereby warrant that you will
take any necessary actions to ensure that the Bit-
Keeper Software successfully transmits the Metadata
to an Open Logging server within 7 days of the cre-
ation of said Metadata. By transmitting the Metadata
to an Open Logging server, You hereby grant BitMover,
or any other operator of an Open Logging server, per-
mission to republish the Metadata sent by the Bit-
Keeper Software to the Open Logging server.
Donc on est obligé de conserver cette "fonctionnalité". Une autre partie intéressante de la licence, qui avait fait couler beaucoup d'encre, c'est l'impossibilité d'utiliser Bitkeeper si on participe au développement d'un autre outil de gestion de version :
(d) Notwithstanding any other terms in this License, this
License is not available to You if You and/or your
employer develop, produce, sell, and/or resell a
product which contains substantially similar capabil-
ities of the BitKeeper Software, or, in the reason-
able opinion of BitMover, competes with the BitKeeper
Software.
Voilà, donc Bitkeeper, d'un point de vue licence, ça craint vraiment. Heureusement qu'il existe des alternatives viables comme
Subversion ou
GNU Arch !