Publicar una web amb Bazaar
2009/04/22 Desactiva els comentaris
Bazaar és un sistema distribuït de control de versions. Ja us vaig explicar como utilitzar-lo per a gestionar l’escriptura d’una tesi doctoral.
Ara, ja fa temps que ho hauria d’haver fet, he començat a versionar la meva web personal (no el blog), la qual està escrita directament en html.
Primer he copiat la web del servidor al meu ordinador (he emprat rsync per conservar les dates dels fitxers) a una carpeta local:
rsync -avz -e ssh usuari@servidor:/la/carpeta/delaweb ./local/.
Llavors hi he activat Bazaar:
bzr init
bzr add .
bzr commit -m "versió inicial"
Després he pujat la meta-informació dels fitxers versionats a una carpeta del servidor que no és accessible des d’internet. Així, els lectors no veuen les versions, però jo puc accedir a tot l’historial des de qualsevol ordinador.
bzr push --create-prefix sftp://usuari@servidor/la/carpeta/bzr/delaweb
Aquest directori que no accessible des de fora, es diu bzr. Si no veieu cap fitxer al servidor, no us preocupeu, Bazaar desa la informació dins una carpeta amagada (.bzr). Aquesta carpeta conté tota la informació necessària per recuperar qualsevol versió de qualsevol dels fitxers.
Finalment, he lligat la meva versió local a la versió remota:
bzr bind sftp://usuari@servidor/la/carpeta/bzr/delaweb
Així els canvis (bzr commit) es desaran al servidor, a no ser que els desi en local emprant bzr commit --local (quan sigui, per exemple, en un avió o un tren).
Per editar els fitxers des d’un altre ordinador, només caldrà crear un nou checkout, és a dir, una nova còpia de l’historial de versions lligada amb la del servidor:
bzr checkout sftp://usuari@servidor/la/carpeta/bzr/delaweb.
Fins ara tot és una típica utilització de Bazaar.
De moment, encara no hem publicat res que sigui accessible. El que volem fer és, amb una simple comanda, publicar els fitxers que han estat modificats en una carpeta del servidor, la qual serà accessible des de l’exterior, però, en aquesta carpeta, no hi volem desar tot l’historial de versions. Per fermaixò, emprarem el plugin bzr-upload, tal com s’explica aquí.
La instal·lació del plugin és molt fàcil. Emprarem el propi bazaar per baixar-ne la darrera versió. Primer, si no el tenim, crearem el directori on Bazaar cerca els plugins:
mkdir ~/.bazaar/plugins.
Llavors, baixarem el codi, directament des de launchpad:
bzr checkout lp:bzr-upload ~/.bazaar/plugins/upload.
Així de simple.
Un cop fet això, anirem al directori on tenim nostre checkout de la web i el pujarem al servidor:
bzr upload sftp://usuari@servidor/la/carpeta/delaweb
Atenció, aquesta carpeta ha de ser diferent de la carpeta on desem les versions! El primer cop, es pujaran tots els fitxers. Més endavant, només es pujaran els fitxers modificats.
A partir d’ara, modificaré els fitxers en local i en desaré les versions amb la comanda bzr commit. Quan cregui que els canvis són dignes de ser vistos pel públic, empraré la comanda bzr upload.
Amb això, tindré versions sincronitzades de la web al servidor i en diversos ordinadors i, al mateix temps, tindré totes les versions desades. Millor, impossible.