Estudi de programació i serveis informàtics

Subversion des de terminal

Dissabte, Març 17th, 2012

En ocasions ens podem trobar en la necessitat d’usar una eina com els repositoris, per a treballar en un projecte comu amb un conjunt de persones. Els repositoris centralitzen el codi font d’un projecte de programació, o els documents de qualsevol altre tipus de projecte en un dipòsit digital del que tots els participants podran obtenir-lo, modificar-lo i actualitzar-lo de forma simultània i independent.

En el següent post, s’explica com montar un repositori en un servidor remot i com usar-lo des una màquina local amb l’eina Subversion. A les dos màquines hi ha instal·lat Debian 6 Squeeze.

Subversion

Primer de tot haurem de tenir instal·lat Subversion, tant en el servidor remot com en la màquina local. Obrim consola i executam com a root:

# apt-get install subversion

Accedim al servidor remot, per exemple des de ssh. Des de terminal:

$ ssh user@servername.com

un cop dins, creem la carpeta /var/svn-repos i creem el repositori:

# mkdir /var/svn-repos
# svnadmin create --fs-type fsfs /var/svn-repos/new-project

Un cop fet això, importarem el contingut inicial del repositori. En aquest cas ho farem des de la màquina local utilitzant ssh per la connexió amb el servidor remot. Suposem que el continut del projecte està a /home/user/project:

$ svn import -m "importing test over ssh+svn" /home/user/project/ svn+ssh://user@servername.com/var/svn-repos/new-project/trunk

la opció -m permet posar un missatge entre “”.

Un cop executat, ja tindrem la primera versió ‘Header’ del repositori. Ara realitzarem els pasos per obtenir el projecte del repositori, modificar-lo i actualitzar els canvis al repositori.

Per a obtenir una instància del projecte en la nostra màquina local, des de terminal farem:

$ svn co svn+ssh://user@servername.com/var/svn-repos/new-project/trunk testcheckout

Ara, a la carpeta testcheckout i tindrem una instància del repositori que conté tots els arxius del nostre projecte. Des de terminal, accedint a aquesta carpeta disposarem de totes les eines del subversion per modificar i el repositori i comunicar els canvis. Subversion, recordarà la connexió ssh i ja no caldrà tornar-li a indicar els paràmetres excepte la contrasenya.

$ cd testcheckout

Podem veure totes les opcions que accepta la comanda svn si executem:

$ svn help

Per a poder treballar amb el projecte al mateix temps que treballem amb el repositori, la comanda svn ens proporciona les eines per afegir, copiar i eliminar fitxers i carpetes, comprovar els canvis amb els arxius actuals del repositori, obtenir l’estat dels arxius, …

Per exemple:

$ svn info --> ens dona informació sobre el repositori.
$ svn status --> ens informa de l'estat de cada arxiu (actualitzat, en conflicte, ...)
$ svn update --> comprova si hi ha noves revisions
$ svn add --> per afegir un nou fitxer
$ svn copy --> per copiar un fitxer existent
$ svn delete --> per eliminar un fitxer

etc…

Als següents enllaços hi trobareu informació extensa de les comandes svn:

Com a mostra d’ús de les comandes, suposarem que estem treballant amb una aplicació externa per modificar els arxius del projecte, per exemple, un projecte java via Eclipse, uns documents de text des de LibreOffice, etc… En cas de crear nous fitxers, abans de pujar els canvis al repositori haurem d’afegir “svn add” tots els nous fitxers que haguem creat dins la carpeta de la instància del repositori, en aquest cas “testcheckout”. Per fer això, des de la consola, situats a la carpeta del repositori, executarem:

$ svn add . --force

Aquesta comanda afegeix tots els nous fitxers creats com a fitxers del repositori. Si no hom fem, mai seran pujats al repositori. Per pujar els canvis fem:

$ svn commit -m "adding last version stable files"

SVN + SSH

Per a que els usuaris del servidor remot tinguin accés per escriure al repositori, serà necessari que pertanyin al grup ‘subversion’. Per afegir-los farem des de consola i connectats per ssh:

# addgroup user subversion

Interficies gràfiques

Pels que trobin a faltar una interfície gràfica, podem confiar amb TortoiseSVN, els usuaris de Windows, i rabbitVCS pels usuaris de GNU/Linux.

En la propera entrega, montarem un servidor webSVN per accedir i consultar els repositoris via web 🙂 xau!


Etiquetes: , ,

Deixa un comentari

L'adreça electrònica no es publicarà. Els camps necessaris estan marcats amb *

Aquest lloc utilitza Akismet per reduir el correu brossa. Aprendre com la informació del vostre comentari és processada