Repositorios Subversion
Descripción
El Servicio de Informática provee de un servidor de repositorios Subversion (svn), para el alojamiento y mantenimiento de código de los proyectos que así lo deseen.
Las características principales de este servicio son las siguientes:
- Permitir usuarios internos del IFIC y cuentas externas.
- Acceso via HTTPS (Versátil/Windows) y SSH ( rápido ).
- Gestión de cada repositorio por parte de su LIBRARIAN, incluyendo autorización de otros usuarios. Sólo puede existir un librarian por repositorio.
Solicitud de nuevo repositorio
Cualquier miembro del ific puede solicitar la creación de un nuevo repositorio.
Para la solicitud se deberá crear un ticket en el sistema irt (
https://irt.ific.uv.es ) dirigido al Servicio de Informática con los siguientes datos:
- Nombre del repositorio ( por ejemplo: "imb2013" )
- Login/correo del librarian ( por ejemplo "alfiera@ific.uv.es")
El librarian se encargará de la gestión del repositorio después de su creación, incluyendo la solicitud de nuevas cuentas de usuarios del repositorio, y de la autorización de las mismas. Para más información referirse al apartado correspondiente
Accediendo al repositorio
Básicamente existen 2 opciones para acceso a repositorio por los
usuarios, por 1)HTTPS o por 2) SSH
Dependiendo de la plataforma sobre la que se ejecute el programa cliente, Windows o Linux, existen diferentes clientes que soportan alguno o ambos de los 2 métodos.
Por ejemplo El cliente nativo svn de linux soporta ambos métodos:
1) svn co https://isvn.ific.uv.es/repos/<REPONAME>
2) svn co svn+ssh://isvn.ific.uv.es/repos/<REPONAME>
Administrando el repositorio ( Librarian )
El
librarian es la persona encargada de administrar el repositorio a todos los efectos.
- Las cuentas de usuarios las creamos el Servicio de Informática con el login que nos proporciona el Librarian.
- El Librarian es el encargado de autorizar esa cuenta para que pueda acceder a el repositorio, mediante el fichero "auth".
Nuevas cuentas de usuario
Para acceder al repositorio los usuarios necesitan una cuenta autorizada en el servicio svn, que calificaremos como cuenta local ( miembros IFIC) o cuenta externa ( cualquier otro miembro externo al instituto)
Usuarios del IFIC
cualquien usuario con cuenta (ej:
usuario@ific.uv.es ) puede acceder al svn.
Para ello, nesitamos que se notifique cada usuario que va acceder al servicio svn con un ticket en irt (
https://irt.ific.uv.es ) que puede enviar él mismo o su librarian indicando el login de la cuenta a acceder (ej:
usuario@ific.uv.es ).
Usuarios externos
Para quien no disponga de una cuenta IFIC se podrá crear una cuenta local.
El
librarian puede solicitar el acceso de la nueva cuenta enviando la información necesario a través de un ticket (
https://irt.ific.uv.es ):
- correo con login del usuario externo (ej:
alfarini@cern.ch )
Se prefiere el login del usuario externo al alias (ej:
Albero.Farini@cern.ch ) ya que el login de la cuenta creada para acceder al svn será del tipo: alfarini.cern.ch
La autenticación será de dos tipos.
1) Cuenta local, y Autenticación con un servidor KERBEROS configurado (actualmente CERN.CH):
La cuenta local es del tipo alfarini.cern.ch y el password se comprueba contra la Celda correspondiente, más cómodo para el usuario pues no tiene que mantener otro password.
- El usuario externo recibirá un correo del tipo:
Dear user,
- A new account for the SVN service at isvn.ific.uv.es has been created for you with the following details:
login: alfarini.cern.ch
password: authenticate with your KERBEROS credentials (cern.ch)
- For SVN you can use SVN+SSH or HTTPS schemas in the following form:
svn --username alfarini.cern.ch cohttps://isvn.ific.uv.es/repos/<REPONAME>
svn cosvn+ssh://alfarini.cern.ch@isvn.ific.uv.es/repos/<REPONAME>
- You can obtain the REPONAME from the LIBRARIAN
- In case of doubt ask the librarian: librarian@ific.uv.es
best regards,
SVN Service
2) Cuenta y Password local. Para las instituciones que no tienen Kerberos, son tambien del tipo: usuarioejemplo.nikhef.nl
El password se podrá cambiar, aunque es el único comando interactivo que se permite.
- El usuario externo recibirá un correo del tipo:
Dear user,
- A new account for the SVN service at isvn.ific.uv.es has been created for you with the following details:
login: usuarioejemplo.nikhef.nl
password: test25290
- No ssh interactive access is allowed but you can CHANGE YOU PASSWORD WITH THE FOLLOWING COMMAND:
ssh usuarioejemplo.nikhef.nl@isvn.ific.uv.es passwd
- For SVN you can use SVN+SSH or HTTPS schemas in the following form:
svn --username usuarioejemplo.nikhef.nl cohttps://isvn.ific.uv.es/repos/<REPONAME>
svn co svn+ssh://usuarioejemplo.nikhef.nl@isvn.ific.uv.es/repos/<REPONAME>
- You can obtain the REPONAME from the LIBRARIAN
- In case of doubt ask the librarian:librarian@ific.uv.es
best regards,
SVN Service
Autorizando acceso a nuevos usuarios
El
librarian debe autorizar el acceso a los nuevos usuarios, modificando el fichero "auth".
Por ejemplo deberá incluir la nueva cuenta externa recién creada "usuarioejemplo.nikhef.nl" en el fichero "auth"
En este ejemplo usuarioejemplo.nikhef.nl tiene derechos de lectura y escritura ( rw ) en todo el repositorio. El resto de usuarios ( * ) no tiene ningún derecho.
$ cat authz
### This file is an example authorization file for svnserve.
### Its format is identical to that of mod_authz_svn authorization
### files.
### As shown below each section defines authorizations for the path and
### (optional) repository specified by the section name.
### The authorizations follow. An authorization line can refer to:
### - a single user,
### - a group of users defined in a special [groups] section,
### - an alias defined in a special [aliases] section,
### - all authenticated users, using the '$authenticated' token,
### - only anonymous users, using the '$anonymous' token,
### - anyone, using the '*' wildcard.
###
### A match can be inverted by prefixing the rule with '~'. Rules can
### grant read ('r') access, read-write ('rw') access, or no access
### ('').
[/]
* =
usuariousuarioejemplo.nikhef.nl = rw
Acceso al fichero "auth"
La interfaz de gestión es por otro protocolo WEBDAV que necesita otro cliente, disponiendo varios en Windows o Linux.
Por ejemplo el linux se puede utilizar el cliente "cadaver"
>
cadaver https://isvn.ific.uv.es/admin/REPONAME/conf
A modo de ejemplo, se pone abajo una sesion que haría el
librarian para cambiar el fichero "authz" del respositorio "testrepo":
[alferca@kantele boost2012]$ cadaver
https://isvn.ific.uv.es/admin/testrepo/conf
WARNING: Untrusted server certificate presented for `isvn.ific.uv.es':
Issued to: IFIC, Default City, ES
Issued by: IFIC, Default City, ES
Certificate is valid from Wed, 17 Oct 2012 11:29:54 GMT to Thu, 17 Oct
2013 11:29:54 GMT
Do you wish to accept the certificate? (y/n) y
Autenticación requerida para Dav/Pam login y password en el servidor
'isvn.ific.uv.es':
Nombre de usuario: alferca
Contraseña:
dav:/admin/testrepo/conf/> ls
Listando colección `/admin/testrepo/conf/': exitoso.
authz 1117 oct 17 16:05
passwd 309 oct 17 13:09
svnserve.conf 3088 oct 17 13:09
dav:/admin/testrepo/conf/> get authz
Descargando '/admin/testrepo/conf/authz' a 'authz':
Progreso: [ ] 0,0% of 1117 bytes
Progreso: [=============================>] 100,0% of 1117 bytes exitoso.
dav:/admin/testrepo/conf/> get authz
Descargando '/admin/testrepo/conf/authz' a 'authz':
Progreso: [ ] 0,0% of 1117 bytes
Progreso: [=============================>] 100,0% of 1117 bytes exitoso.
dav:/admin/testrepo/conf/> exit
Conexión con 'isvn.ific.uv.es' cerrada.
[alferca@kantele boost2012]$ cat authz
### This file is an example authorization file for svnserve.
### Its format is identical to that of mod_authz_svn authorization
### files.
### As shown below each section defines authorizations for the path and
### (optional) repository specified by the section name.
### The authorizations follow. An authorization line can refer to:
### - a single user,
### - a group of users defined in a special [groups] section,
### - an alias defined in a special [aliases] section,
### - all authenticated users, using the '$authenticated' token,
### - only anonymous users, using the '$anonymous' token,
### - anyone, using the '*' wildcard.
###
### A match can be inverted by prefixing the rule with '~'. Rules can
### grant read ('r') access, read-write ('rw') access, or no access
### ('').
[aliases]
# joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research
Institute/CN=Joe Average
[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe
# [/foo/bar]
# harry = rw
# &joe = r
# * =
# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r
[/]
* =
alferca = rw
sanchezj = r
[alferca@kantele boost2012]$ cadaver
https://isvn.ific.uv.es/admin/testrepo/conf
WARNING: Untrusted server certificate presented for `isvn.ific.uv.es':
Issued to: IFIC, Default City, ES
Issued by: IFIC, Default City, ES
Certificate is valid from Wed, 17 Oct 2012 11:29:54 GMT to Thu, 17 Oct
2013 11:29:54 GMT
Do you wish to accept the certificate? (y/n) y
Autenticación requerida para Dav/Pam login y password en el servidor
'isvn.ific.uv.es':
Nombre de usuario: alferca
Contraseña:
dav:/admin/testrepo/conf/> put authz
Transferiendo authz a '/admin/testrepo/conf/authz':
Progreso: [ ] 0,0% of 1117 bytes
Progreso: [=============================>] 100,0% of 1117 bytes exitoso.
Problemas comunes de acceso
423 Locked
al acceder a fichero, por ejemplo auth está con un Lock. Lo puede quitar el mismo librarian poniendo el "opaquelocktoken":
dav:/webdav/> edit index.html
Locking `index.html': failed:
423 Locked
dav:/webdav/> discover index.html
Discovering locks on `index.html':
Lock token <opaquelocktoken:28cfc4e4-9c04-0410-bed0-c546ac2f7a25>:
Depth 0 on `http://www.example.com/webdav/index.html'
Scope: exclusive Type: write Timeout: infinite
Owner: (none)
dav:/webdav/> unlock index.html
Unlocking `index.html':Enter locktoken: opaquelocktoken:28cfc4e4-9c04-0410-bed0-c546ac2f7a25
succeeded.
--
AlvaroFernandez - 29 Jan 2013