Lo primero instalar subversión, una buena opción es CollabNet Subversion Edge de licencia GPL o también pueden instalar TortoiseSVN que viene integrado al explorador de Windows para hacer click derecho y crear repositorios en este post explicare la instalcion de CollabNet
Primero descargar la ultima versión de collabnet para Windows desde la siguiente URL
http://www.open.collab.net/downloads/subversion/ necesitaran registrarse pero el registro es rápido, después de todo no hay mejor opción que bajarse software del proveedor oficial.
En la instalación la mayoría de cosas son siguiente y siguiente, destacando la carpeta raíz para los repositorio por defecto "
C:/svn_repository" aquí se crearan los repositorios esta carpeta es modificable después en el archivo de configuracion de apache "
httpd.conf"
Una vez instalado y corriendo
1)Crear un repositorio con el siguiente comando
svnadmin create C:/svn_ repository/repositorio1
la url q apache asigna a este repositorio es http:/localhost/svn/repositorio
fíjense q es localhost/ sin el puerto asumiendo que pusieron el puerto 80.
Porque svn si la carpeta se llama svn_repository la explicación esta en el archivo "
httpd.conf" ubicado en
C:\Archivos de programa\CollabNet\Subversion Server\httpd\conf
Al final del archivo
Tendrá este contenido por defecto:
<Location /svn>
DAV svn
SVNParentPath C:\svn_repository
</Location>
Como se ve toma como carpeta base
C:\svn_repository
Y le añade el prefijo svn es decir
C:\svn_repository es equivalente a
http://localhost/svn por consiguiente
http://localhost/svn/repositorio1 es equivalente a
C:\svn_repository\repositorio1
2)Configurar usuarios ( autentificación )
Modificar el archivo httpd.conf ubicado en
C:\Archivos de programa\CollabNet\Subversion Server\httpd\conf
Reemplace lo siguiente :
<Location /svn>
DAV svn
SVNParentPath C:\svn_repository
</Location> Por:
<Location /svn>
DAV svn
SVNParentPath C:\svn_repository
# Autenticación básica.
AuthType Basic
AuthName "Repositorio Subversion"
AuthUserFile D:/usuarios.txt
#-----------------------------------------------------------
#Descomentar lo siguiente si quieren que los demas vean su proyecto,
#lo bajen pero para modificarlo necesiten identificarse
#<LimitExcept GET PROPFIND OPTIONS REPORT>
# Require valid-user
#</LimitExcept>
#-----------------------------------------------------------
#Lo siguiente bloquea el acceso a lectura y escritura de
#usuarios no identificados
Require valid-user
#-----------------------------------------------------------
</Location>
Donde el archive
D:/usuarios.txt contiene los usuarios y password encriptados con el
es un algoritmo de reducción criptográfico MD5
Una alternativa a usar SVNParentPath es usar SVNPath con la diferencia que:
SVNPath : es para un solo repositorio
SVNParentPath : es para varios repositorios
3) Crear un usuario
Para
crear un usuario hay que entrar a consola ( inicio /ejecutar /escribir cmd (enter)
Ubicarse en la carpeta bien de Collabnet :
cd C:\Archivos de programa\CollabNet\Subversion Server\httpd\bin
Y crear un usuario con el siguiente comando:
htpasswd -bc d:\usuarios.txt <usuario> <contraseña>
donde en el
-bc: la b es para crear el archivo y la c es para crear el usuario ( si no se especifica la contraseña se le pedirá que la ingrese dos veces y se visualizara con ***)
para ingrear el segundo usuario seria:
htpasswd -m d:\usuarios.txt <usuario>
-m se usa para ingresar el segundo usuario ( el 3ro,4to ... es decir mas de un usuario ) o modificar la contraseña de uno ya existente, luego de escribir esta sentencia y presionar enter se le pedirá que ingrese la contraseña
Un ejemplo
C:\Archivos de programa\CollabNet\Subversion Server\httpd\bin>htpasswd -bc d:\usuarios.txt erik pass
Automatically using MD5 format.
Adding password for user erik
Con esto ya podrán acceder desde eclipse al repositorio con la siguiente url http://127.0.0.1/svn/repositorio1 y subir un proyecto o hacerlo manualmente desde consola.
4) Configurando grupos de usuarios y permisos por usuario y por grupo
Lo siguiente sera agregar un archivo para configurar grupos y premisos, por ejemplo edite el archivo de repositorio1 aunque puede estar donde se desee y tener cualquier otro nombre y extensión
C:/svn_ repository/repositorio1/authz.conf
Aqui el contenido del archivo
[groups]
administradores= erik
otro= prueba
[/]
@administradores = rw
prueba= r
Esta configuración nos dice que:
- El grupo "administradores" tendrá los permisos r= lectura (read) y w = escritura (write)
- El usuario "prueba" tendrá el permiso de solo lectura.
Todo esto sobre la raiz
"[ / ]" es decir todo el subarbol de carpetas que esten debajo de la raiz /, en nuestro caso cualquier carpeta que este debajo de repositorio1.
También se puede añadir configuraciones para una carpeta especifica, ejemplo:
Observación: cualquier otro usuario no tendrá ningún permiso
Finalmente falta enlazar este archivo de permisos con el repositorio, para esto editamos el archivo "httpd.conf" ubicado en
C:\Archivos de programa\CollabNet\Subversion Server\httpd\conf
Agregamos debajo de AuthUserFile :
AuthzSVNAccessFile C:/svn_repository/repositorio1/conf/authz.conf
Quedaria asi:
SVNParentPath C:\svn_repository
AuthName "Repositorio Subversion"
AuthUserFile D:/usuarios.txt
AuthzSVNAccessFile C:/svn_repository/repositorio1/conf/authz.conf
#-----------------------------------------------------------
#Descomentar lo siguiente si quieren que los demas vean su proyecto,
#lo bajen pero para modificarlo necesiten identificarse
#<LimitExcept GET PROPFIND OPTIONS REPORT>
# Require valid-user
#</LimitExcept>
#-----------------------------------------------------------
#Lo siguiente bloquea el acceso a lectura y escritura de
#usuarios no identificados
Require valid-user
#-----------------------------------------------------------