How to install SVN server on GNU/Linux

Subversion is a version control system. What’s this? Well, let me give you a small example. Do you remember when we were doing work for the school in groups? That task were very difficult to coordinate. Everyone makes a separate section of the work, following the same patterns, but without touching direct the work of others. Therefore, at home (where each student worked), you cand find a totally different copy of the work, until one day the whole group was meeting, to mix everything and give a full sense.

So, if this document is in a word Subversion repository, the document will be, as they say, synchronized. This would mean that everyone would have their copies, as in the previous situation, but could be in line changes that others had made to the document, both in their sections as their own. We could amend the text of our colleagues and they, to synchronize themselves, see where we have made these changes. All versions are different, so anytime we could go back to the version that was saved a week ago.

Sure that all these ideas sound good, positive … So imagine how it should be this kind of powerful tool in a whole project, with a lot of developers working at the same time, a lot of different files, Forks of the project … Nothing better to encourage you to try it as a manual to mount it on your machine.

In fact, a link that always goes well: http://es.wikipedia.org/wiki/Subversion

Howto SVN Server:
First of all, you should install these packages, drakconf way.
  • subversion-1.4.3-2mdv2007.1.i586
  • subversion-server-1.4.3-2mdv2007.1.i586
  • subversion-tools-1.4.3-2mdv2007.1.i586

In principle, when you have set off these packages, you have the application “svnadmin”. Now you have to create the directory where you want to place the repository, and create the necessary files within that directory with the help of “svnadmin”. It could be something like this:

# cd /opt/
# mkdir subversion
# svnadmin create subversion

Entering within the directory you just created, we will see that “svnadmin” We have created a directory structure, and a Readme.txt … so it would not be making more of an RTFM! (I have just read and are 4 lines that make them feel that everything is controlled).

At this point, we already have the file system ready, and move on to focus on the configuration of the SVN server. First, changing the configuration file subversion, and then modify the users who have access to our manager versions.

# vim /opt/subversion/conf/svnserve.conf
[general]
anon-access = none
auth-access = write
password-db = passwd

# vim /opt/subversion/conf/passwd
[users]
pipo=elpassworddelpipoeslarehostia

Modified these two files, you have the entire repository assembled and configured. Now, we need only to boot it with the command:

{codecitation style=”brush: bash;”}# svnserve -d -r /opt/subversion{/codecitation}

When you run this command, we do not return any echo, as will the SVN server running on port 3690 of the machine. We can see it with lsof-i:

# lsof -i
svnserve 30661 root 3u IPv6 83679 TCP *:svn (LISTEN)

By the way, now that I look at the line, it would be interesting to svnserve not run as root, but the repository is under the permissions of a user running, and the process svnserve a call from that user.

Howto Eclipse SVN (Subclipse)

One of the tools I use is against the Eclipse SVN (in fact, the only). And here a small sample configure for the Eclipse as a client of our Version Manager. The only requirement is to be installed off the plug “Subclipse” our Eclipse. Personally, I use the distribution of Yoxos Eclipse (http://www.yoxos.com/ondemand/) which leads me to this plug set off, so I never had to worry about it. In any case, should not be much problem finding a howto on how to set up this …

In case you have already set off, however, we must open the prospect “SVN Repository Exploring.” There, do:
Right click on the area “SVN Repository” – New – Repository Location

The only field that they want are “URL”, where will the leadership of our server. If you look at what we have in place, remember that our repository was to “/ opt / subversion” so that “subversion” is the name of our repository. This URL is formed as follows:

svn:// + domain + repo
svn://piposerver.com/subversion

Clicking on “Finish”, we will all have projects in the repository (there will be no if you have just set up the platform!)

At this time, our Eclipse will be able to share projects. I do not want me to explore much of it because there are a lot of topic to write … but to introduce ourselves, I have to say that you can share an existing Java project with the SVN platform going to the Java perspective and doing this simply step:
Right click on the project – Team – Share project

I hope that this manual, written with the best intentions, we’ve provided some help! And remember… you can do a little bit of feedback 😉

Instal·lar SVN server sobre GNU/Linux

Subversion és un sistema de control de versions. Què és això? Doncs per explicar-ho, posaré un petit exemple per on tothom ha passat, i on  podria anar bé una plataforma com aquesta. Recordem quan fèiem treballs del col·legi en grup. Ens trobàvem en que era molt difícil coordinar-se. Si el grup era de 3 persones, es repartia la feina de que cadascú fes una secció independent del treball, seguint les mateixes pautes comunes, però sense tocar directament el treball dels altres. Això, feia que a casa seva (on cada alumne treballava), hi hagués una copia totalment diferent del treball, fins que un dia, tot el grup es reunia, per mesclar-ho tot i donar-li un sentit ple.

Doncs si aquest document word estigués en un repositori de Subversion, aquest document estaria, com es diu, sincronitzat. Això implicaria que tothom tindria la seva copia, com en la situació anterior, però podria veure en línia els canvis que els altres usuaris haguessin fet al document, tant a les seves seccions com a les pròpies. Podríem modificar el text dels nostres companys i ells, al sincronitzar-se, veurien on hem fet aquests canvis. Totes les versions, estarien diferenciades, de manera que en qualsevol moment podríem tornar a la versió que es va guardar fa una setmana.

Segur que totes aquestes idees sonen bé, són positives… doncs imagineu com ha de ser de potent aquest tipus d’eina en un projecte sencer, amb un munt de desenvolupadors treballant alhora, un munt d’arxius diferents, forks del projecte… Res millor per a animar-vos a que ho proveu, com un petit manual per a que ho munteu en les vostres màquines.

Per cert, un link, que sempre va bé: http://es.wikipedia.org/wiki/Subversion

Howto SVN Server:

Primer de tot, cal instal·lar els següents paquets, via drakconf mateix.

  • subversion-1.4.3-2mdv2007.1.i586
  • subversion-server-1.4.3-2mdv2007.1.i586
  • subversion-tools-1.4.3-2mdv2007.1.i586

En principi, després d’haver instal·lat aquests paquets, disposes de la aplicació “svnadmin”. Ara, crea un directori on vulguis situar el repositori, i crea els arxius necessaris dintre d’aquest directori amb l’ajuda de “svnadmin”. Podria ser algo similar a:

# cd /opt/
# mkdir subversion
# svnadmin create subversion

Si entrem dintre del directori que acabem de crear, veurem que “svnadmin” ens ha creat una estructura de directoris, i un arxiu README.txt… així que no estaria de més fer un RTFM! (ho acabo de llegir i són 4 línies que fan sentir que tot està controlat).

En aquest punt, ja tenim el sistema d’arxius llest, i passem a concentrar-nos en la configuració del servidor de SVN. Primer, modificarem l’arxiu de configuració de subversion, i després modificarem els usuaris que tenen accés al nostre gestor de versions.

# vim /opt/subversion/conf/svnserve.conf
[general]
anon-access = none
auth-access = write
password-db = passwd

# vim /opt/subversion/conf/passwd
[users]
pipo=elpassworddelpipoeslarehostia

Modificats aquests dos arxius, ja tindrem tot el repositori muntat i configurat. Ara, només ens cal arrancar-ho amb la comanda:

# svnserve -d -r /opt/subversion

Al executar aquesta comanda, que no ens retorna cap echo, ja tindrem el servidor d’SVN corrents pel port 3690 de la nostra màquina. Podem observar-ho amb lsof -i:

# lsof -i
svnserve  30661    root    3u  IPv6  83679       TCP *:svn (LISTEN)

Per cert, ara que miro la línia, seria interessant que svnserve no s’executés com a root, sinó que el repositori estigués sota els permisos d’un usuari corrent, i el procés svnserve es cridés des d’aquest usuari.

Howto Eclipse SVN (Subclipse)

Una de les eines que utilitzo contra SVN és l’Eclipse (de fet, és la única). I aquí una petita mostra per a configurar l’Eclipse com a client del nostre gestor de versions. L’únic requisit és tenir instal·lat el plugin “Subclipse” al nostre Eclipse. Personalment, utilitzo la distribució d’Eclipse de Yoxos (http://www.yoxos.com/ondemand/) que ja em porta aquest plugin instal·lat, de manera que mai m’he hagut de preocupar per això. En tot cas, no ha de ser molt problemàtic trobar algun howto de com instal·lar això…

En el cas de que ja ho tinguem instal·lat tot, hem d’obrir la perspectiva “SVN Repository Exploring”. Allà, fer:
Click dreta sobre la zona de “SVN Repository” – New – Repository Location

L’únic camp que se’ns demana és “URL”, on posarem la direcció del nostre servidor. Si mirem el que hem configurat, recordarem que el nostre repositori era a “/opt/subversion”, de manera que “subversion” es el nom del nostre repositori. Aquesta URL es forma així:
svn:// + domini + repositori
svn://piposerver.com/subversion

Al fer click a “Finish”, ens apareixeran tots els projectes que tinguem en el repositori (no n’hi haurà cap si acabem d’instal·lar la plataforma!)

En aquest moment, el nostre Eclipse ja serà capaç de compartir projectes. No vull endinsar-me molt en això, ja que hi ha molt de tema per escriure… però per a introduir-nos, només comentar que per a compartir un projecte, només cal anar a la perspectiva de Java, i des d’allà:
Click dreta sobre el projecte – Team – Share project

Espero que aquest manual, escrit amb les millors intencions, us hagi servit d’alguna ajuda!! I si és així, no estaria de més una mica de feedback 😉