Diferencia entre revisiones de «Subversion»
(No se muestran 4 ediciones intermedias realizadas por 3 usuarios) | |||
Línea 1: | Línea 1: | ||
− | Subversion es un software de sistema de control de versiones diseñado específicamente para reemplazar al popular CVS, el cual posee varias deficiencias. Es software libre bajo una licencia de tipo Apache/BSD y se lo conoce también como svn por ser ese el nombre de la herramienta de línea de comandos. Una característica importante de Subversion es que, a diferencia de CVS, los archivos versionados no tienen cada uno un número de revisión independiente. En cambio, todo el repositorio tiene un único número de versión que identifica un estado común de todos los archivos del repositorio en cierto punto del tiempo. | + | '''Subversion''' es un software de sistema de control de versiones diseñado específicamente para reemplazar al popular CVS, el cual posee varias deficiencias. Es software libre bajo una licencia de tipo Apache/BSD y se lo conoce también como svn por ser ese el nombre de la herramienta de línea de comandos. Una característica importante de Subversion es que, a diferencia de CVS, los archivos versionados no tienen cada uno un número de revisión independiente. En cambio, todo el repositorio tiene un único número de versión que identifica un estado común de todos los archivos del repositorio en cierto punto del tiempo. |
Vamos a instalar un servidor de Subversion que gestione las peticiones a través de Apache, lo cual lo dotará de una serie de funcionalidades añadidas. Estas funcionalidades las proporcionarán los distintos módulos de Apache existentes, como el poder usar autentificación por base de datos. Realmente útil a la hora de mantener el control de acceso a distintos usuarios por proyecto. | Vamos a instalar un servidor de Subversion que gestione las peticiones a través de Apache, lo cual lo dotará de una serie de funcionalidades añadidas. Estas funcionalidades las proporcionarán los distintos módulos de Apache existentes, como el poder usar autentificación por base de datos. Realmente útil a la hora de mantener el control de acceso a distintos usuarios por proyecto. | ||
− | $ sudo aptitude install subversion libapache2-svn | + | $ sudo aptitude install subversion libapache2-svn |
En el directorio /etc/apache2/mods-enabled puedes ver como se han creado enlaces a varios ficheros de los cuales ahora mismo nos interesa dav_svn.conf. Lo vamos a editar para hacer algunas modificaciones para crear un repositorio llamado pruebas. | En el directorio /etc/apache2/mods-enabled puedes ver como se han creado enlaces a varios ficheros de los cuales ahora mismo nos interesa dav_svn.conf. Lo vamos a editar para hacer algunas modificaciones para crear un repositorio llamado pruebas. | ||
Línea 12: | Línea 12: | ||
# URL controls how the repository appears to the outside world. | # URL controls how the repository appears to the outside world. | ||
# In this example clients access the repository as http://hostname/svn/ | # In this example clients access the repository as http://hostname/svn/ | ||
− | <Location /svn> | + | #<Location /svn> |
− | + | Descomentamos la línea y cambiamos el nombre del repositorio pruebas: | |
# <Location URL> ... </Location> | # <Location URL> ... </Location> | ||
Línea 46: | Línea 46: | ||
Require valid-user | Require valid-user | ||
</LimitExcept> | </LimitExcept> | ||
+ | |||
+ | No olvidemos descomentar la última línea. Ya que es donde termina el repositorio. | ||
+ | </Location> | ||
Como somos muy ordenados, queremos crear un repositorio por cada proyecto. Así será más sencillo gestionar las políticas de seguridad. Todos estos repositorios se van a crear dentro del directorio /var/lib/svn por lo que tenemos que crearlo previamente. | Como somos muy ordenados, queremos crear un repositorio por cada proyecto. Así será más sencillo gestionar las políticas de seguridad. Todos estos repositorios se van a crear dentro del directorio /var/lib/svn por lo que tenemos que crearlo previamente. | ||
Línea 71: | Línea 74: | ||
Si abres un navegador y accedes a http://localhost/pruebas podrás ver el contenido del repositorio pruebas. | Si abres un navegador y accedes a http://localhost/pruebas podrás ver el contenido del repositorio pruebas. | ||
+ | |||
+ | == Ver también == | ||
+ | |||
+ | * [[CVSTrac]] | ||
+ | * [[Subversion]] | ||
+ | |||
+ | [[Categoría:Programación]] |
Última revisión de 21:21 9 ene 2009
Subversion es un software de sistema de control de versiones diseñado específicamente para reemplazar al popular CVS, el cual posee varias deficiencias. Es software libre bajo una licencia de tipo Apache/BSD y se lo conoce también como svn por ser ese el nombre de la herramienta de línea de comandos. Una característica importante de Subversion es que, a diferencia de CVS, los archivos versionados no tienen cada uno un número de revisión independiente. En cambio, todo el repositorio tiene un único número de versión que identifica un estado común de todos los archivos del repositorio en cierto punto del tiempo.
Vamos a instalar un servidor de Subversion que gestione las peticiones a través de Apache, lo cual lo dotará de una serie de funcionalidades añadidas. Estas funcionalidades las proporcionarán los distintos módulos de Apache existentes, como el poder usar autentificación por base de datos. Realmente útil a la hora de mantener el control de acceso a distintos usuarios por proyecto.
$ sudo aptitude install subversion libapache2-svn
En el directorio /etc/apache2/mods-enabled puedes ver como se han creado enlaces a varios ficheros de los cuales ahora mismo nos interesa dav_svn.conf. Lo vamos a editar para hacer algunas modificaciones para crear un repositorio llamado pruebas.
Localizamos las líneas donde se define el repositorio por defecto svn:
# <Location URL> ... </Location> # URL controls how the repository appears to the outside world. # In this example clients access the repository as http://hostname/svn/ #<Location /svn>
Descomentamos la línea y cambiamos el nombre del repositorio pruebas:
# <Location URL> ... </Location> # URL controls how the repository appears to the outside world. # In this example clients access the repository as http://hostname/svn/ <Location /pruebas>
Tal y como indica, descomentamos para activar el repositorio:
# Uncomment this to enable the repository, # DAV svn
Así:
# Uncomment this to enable the repository, DAV svn
Modificamos también las líneas:
# Set this to the path to your repository # SVNPath /var/lib/svn
Para establecer el path del repositorio:
# Set this to the path to your repository SVNPath /var/lib/svn/pruebas
Inicialmente comentaremos las siguientes líneas para desactivar la seguridad:
<LimitExcept GET PROPFIND OPTIONS REPORT> Require valid-user </LimitExcept>
No olvidemos descomentar la última línea. Ya que es donde termina el repositorio.
</Location>
Como somos muy ordenados, queremos crear un repositorio por cada proyecto. Así será más sencillo gestionar las políticas de seguridad. Todos estos repositorios se van a crear dentro del directorio /var/lib/svn por lo que tenemos que crearlo previamente.
$ sudo mkdir /var/lib/svn
Ahora tenemos que crear el repositorio en sí:
$ sudo svnadmin create /var/lib/svn/pruebas
Aunque no es estrictamente necesario, vamos a crear los directorio trunk, tags y branches que servirán para almacenar el código actual, los tag y las posibles ramas que pueda tener nuestro proyecto:
$ sudo svn mkdir --message="Setting up the directories..." \ file:///var/lib/svn/pruebas/trunk \ file:///var/lib/svn/pruebas/tags \ file:///var/lib/svn/pruebas/branches
Dado que vamos a acceder a este repositorio a través de apache, tendremos que asignarle el propietario adecuado:
$ sudo chown www-data:www-data /var/lib/svn/pruebas -R
Sólo nos queda reiniciar el servidor Apache para que vuelva a leer la configuración actualizada:
$ sudo /etc/init.d/apache2 restart
Si abres un navegador y accedes a http://localhost/pruebas podrás ver el contenido del repositorio pruebas.
Ver también
- CVSTrac
- Subversion