Diferencia entre revisiones de «Subversion»

De Wiki Asqueados
Saltar a: navegación, buscar
(XVnWQdqvKGi)
()
Línea 1: Línea 1:
4m3YNp  <a href="http://jjjanxvfritq.com/">jjjanxvfritq</a>, [url=http://creghqexbsyj.com/]creghqexbsyj[/url], [link=http://chnramdyglsa.com/]chnramdyglsa[/link], http://lumocedqiyxl.com/Asvf13  <a href="http://spcgvryzqplg.com/">spcgvryzqplg</a>, [url=http://tixupkhaqvus.com/]tixupkhaqvus[/url], [link=http://ouyaeiuumkms.com/]ouyaeiuumkms[/link], http://kahhnnmuhzlh.com/<a href=http://www.poland.gov.pl/loc.php?url=%2F%2Fanswersaboutall.com/?s=nude+photos>nude photos</a>
+
<small>Por Jorgecab</small>
http://login.ezproxy.drew.edu/login?url=HTTP://ask-about-all.com/?s=nude+brunette nude brunette
 
<a href=http://www.oilru.com/go.php?URL=http://answersaboutall.com/?s=milf+next+door>milf next door</a>
 
http://webmail.tufts.edu/horde/services/go.php?url=HTTP://answersaboutall.com/?s=free+russian+porn free russian porn
 
  
mazda9981<a href=http://www.poland.gov.pl/loc.php?url=%2F%2Fask-about-all.com/?s=ejaculation+tips>ejaculation tips</a>
+
Subversion es un sistema de control de versiones que nos permite mantener un repositorio de ficheros y directorios pero con la posibilidad de recuperar versiones antiguas de cada uno. En el servidor de Hispafuentes tenemos varios repositorios con SVN accesibles vía web. Aquí describiremos como crear uno y configurar Apache para poder accederlo.
<a href=http://wmezproxy.wnmeds.ac.nz/login?url=HTTP://ask-about-all.com/?s=hot+kissing>hot kissing</a>
 
http://bfc.excite.com/search/excite_search_redirect.html?redir=%2F%2Fanswersaboutall.com/?s=lesbian+dating+services lesbian dating services
 
http://andrew-ford.com/external/http://answersaboutall.com/?s=cunnilingus+how+to+video cunnilingus how to video
 
<a href=http://www.ua.es/cgi-bin/urlexpand?url=HTTP://ask-about-all.com/?s=sex+video>sex video</a>
 
<a href=http://www.ihi.org/ihi/gateway.aspx?target=http://answersaboutall.com/?s=milf+videos>milf videos</a>
 
http://www.oilru.com/go.php?URL=http://ask-about-all.com/?s=internal+ejaculation internal ejaculation
 
http://www.genealogy.com/cgi-bin/linkcount.cgi?Target=http://ask-about-all.com/?s=wiz+kilo+ft+young+smilez++so+sexy wiz kilo ft young smilez  so sexy
 
<a href=http://www.genealogy.com/cgi-bin/linkcount.cgi?Target=http://answersaboutall.com/?s=swingers+board>swingers board</a>
 
<a href=http://www.cnews.ru/cgi-bin/redirect_cnews.cgi?http://answersaboutall.com/?s=old+navy+hiring>old navy hiring</a>
 
<a href=http://www.oilru.com/go.php?URL=http://ask-about-all.com/?s=swingers+doing+mmf>swingers doing mmf</a>
 
http://www.online-medical-news.org/redir.asp?url=http://ask-about-all.com/?s=lit+gal+livejournal lit gal livejournal
 
<a href=http://serc.carleton.edu/redirect.php?r=http://answersaboutall.com/?s=celebrity+fuck>celebrity fuck</a>
 
http://www.poland.gov.pl/loc.php?url=%2F%2Fanswersaboutall.com/?s=wives+who+sissify+husbands wives who sissify husbands
 
<a href=https://login.ezproxy.lib.lehigh.edu/login?url=HTTP://answersaboutall.com/?s=mature+naked+women>mature naked women</a>
 
http://www.genealogy.com/cgi-bin/linkcount.cgi?Target=http://answersaboutall.com/?s=gay+blowjob gay blowjob
 
<a href=http://login.ezproxy.drew.edu/login?url=HTTP://ask-about-all.com/?s=fatty+porn>fatty porn</a>
 
<a href=http://www.cnews.ru/cgi-bin/redirect_cnews.cgi?http://answersaboutall.com/?s=svcd+compatible+dvd+players>svcd compatible dvd players</a>
 
<a href=http://www.gao.gov/docsearch/locate?to=http://answersaboutall.com/?s=free+erotic+voyeur+stories>free erotic voyeur stories</a>
 
<a href=http://myaccess.library.utoronto.ca/login?url=HTTP://ask-about-all.com/?s=hentai+sex>hentai sex</a>
 
<a href=http://sesam.se/boomerang/category=info;subcategory=rss/http://ask-about-all.com/?s=taboo+incest+sex>taboo incest sex</a>
 
http://www.online-medical-news.org/redir.asp?url=http://ask-about-all.com/?s=amatuer+teen amatuer teen
 
<a href=http://www.online-medical-news.org/redir.asp?url=http://answersaboutall.com/?s=soft+porn+clips+free+to+download>soft porn clips free to download</a>
 
<a href=http://www.ua.es/cgi-bin/urlexpand?url=HTTP://answersaboutall.com/?s=cheerleader+nude>cheerleader nude</a>
 
<a href=http://www.techmeme.com/goto/answersaboutall.com/?s=ebony+fingering>ebony fingering</a>
 
  
mazda9981<a href=http://journals.jbjs.org.uk/cgi/adclick/?ad=777&adclick=true&url=http://ask-about-all.com/?s=emo+guys+kissing>emo guys kissing</a>
 
http://bfc.excite.com/search/excite_search_redirect.html?redir=%2F%2Fanswersaboutall.com/?s=photos+sunbathing+couples photos sunbathing couples
 
http://andrew-ford.com/external/http://answersaboutall.com/?s=anime+yaoi anime yaoi
 
<a href=https://webmail5.isis.unc.edu/mail/services/go.php?url=HTTP://answersaboutall.com/?s=free+amateur+porn>free amateur porn</a>
 
<a href=http://www.bizrate.com/rd?t=http://answersaboutall.com/?s=swingers+porn>swingers porn</a>
 
<a href=http://www.bizrate.com/rd?t=http://answersaboutall.com/?s=first+orgasm>first orgasm</a>
 
<a href=http://www.ihi.org/ihi/gateway.aspx?target=http://answersaboutall.com/?s=blonde+bondage>blonde bondage</a>
 
http://webmail.tufts.edu/horde/services/go.php?url=HTTP://answersaboutall.com/?s=double+penetration+pussy double penetration pussy
 
http://myaccess.library.utoronto.ca/login?url=HTTP://answersaboutall.com/?s=dick+massage dick massage
 
<a href=http://www.bizrate.com/rd?t=http://ask-about-all.com/?s=desperate+housewives+spoilers>desperate housewives spoilers</a>
 
<a href=http://www.collegehumor.com/out/HTTP://ask-about-all.com/?s=manga+xxx>manga xxx</a>
 
<a href=http://www.michigan.org/redir.asp?url=http://ask-about-all.com/?s=lesbian+mgp>lesbian mgp</a>
 
<a href=http://www.collegehumor.com/out/HTTP://ask-about-all.com/?s=dire+straits+making+movies>dire straits making movies</a>
 
<a href=http://www.bbc.co.uk/survey/redir/newstxtsurv/redir.shtml?survey=no&url=ask-about-all.com/?s=flaccid+penis>flaccid penis</a>
 
http://login.ezproxy.lib.ucalgary.ca/login?url=HTTP://answersaboutall.com/?s=nylon+stockings+garters+slips nylon stockings garters slips
 
<a href=http://skicentral.com/cgi/r?http://ask-about-all.com/?s=hot+little+girls>hot little girls</a>
 
http://www.bizrate.com/rd?t=http://answersaboutall.com/?s=beach+orgies beach orgies
 
http://webmail.tufts.edu/horde/services/go.php?url=HTTP://answersaboutall.com/?s=huge+black+dick huge black dick
 
http://www.gamextazy.com/bitrix/redirect.php?goto=http://answersaboutall.com/?s=hot+boobs hot boobs
 
http://ezproxy.neumann.edu:2048/login?url=HTTP://ask-about-all.com/?s=girls+french+kissing girls french kissing
 
http://www.online-medical-news.org/redir.asp?url=http://ask-about-all.com/?s=free+porn+games free porn games
 
http://www.online-medical-news.org/redir.asp?url=http://answersaboutall.com/?s=squirting+orgasms squirting orgasms
 
  
mazda99811<a href=http://www.add-in-express.com/bitrix/redirect.php?goto=http://ask-about-all.com/?s=brick+house+butts>brick house butts</a>
+
== Configurar el agent ==  
http://www.gao.gov/docsearch/locate?to=http://ask-about-all.com/?s=cute+blonde+teens cute blonde teens
 
http://serc.carleton.edu/redirect.php?r=http://answersaboutall.com/?s=toon+tgp toon tgp
 
http://www.online-medical-news.org/redir.asp?url=http://ask-about-all.com/?s=indian+hardcore indian hardcore
 
<a href=http://www.cnews.ru/cgi-bin/redirect_cnews.cgi?http://answersaboutall.com/?s=young+models+russian>young models russian</a>
 
http://serc.carleton.edu/redirect.php?r=http://ask-about-all.com/?s=fat+sex fat sex
 
http://www.gao.gov/docsearch/locate?to=http://answersaboutall.com/?s=busty+housewives busty housewives
 
http://andrew-ford.com/external/http://ask-about-all.com/?s=straight+gay straight gay
 
http://www.online-medical-news.org/redir.asp?url=http://answersaboutall.com/?s=firm+tits firm tits
 
http://www.bbc.co.uk/survey/redir/newstxtsurv/redir.shtml?survey=no&url=answersaboutall.com/?s=exotic+nude+pics+of+women exotic nude pics of women
 
<a href=http://login.ezproxy.lib.ucalgary.ca/login?url=HTTP://ask-about-all.com/?s=milfs+fucking>milfs fucking</a>
 
http://serc.carleton.edu/redirect.php?r=http://ask-about-all.com/?s=rabbit+pearl+vibrator rabbit pearl vibrator
 
http://login.ezproxy.drew.edu/login?url=HTTP://answersaboutall.com/?s=old+milfs old milfs
 
http://www.gamextazy.com/bitrix/redirect.php?goto=http://answersaboutall.com/?s=hard+hats hard hats
 
http://www.add-in-express.com/bitrix/redirect.php?goto=http://answersaboutall.com/?s=underground+prelolita+bbs underground prelolita bbs
 
http://login.ezproxy.drew.edu/login?url=HTTP://ask-about-all.com/?s=latina+lesbians latina lesbians
 
<a href=http://login.ezproxy.lib.ucalgary.ca/login?url=HTTP://answersaboutall.com/?s=ebony+anal>ebony anal</a>
 
<a href=http://wmezproxy.wnmeds.ac.nz/login?url=HTTP://answersaboutall.com/?s=large+vagina>large vagina</a>
 
http://myaccess.library.utoronto.ca/login?url=HTTP://answersaboutall.com/?s=young+nudist+pics young nudist pics
 
http://www.techmeme.com/goto/answersaboutall.com/?s=rough+sex rough sex
 
<a href=http://www.msvu.ca:2048/login?url=HTTP://ask-about-all.com/?s=lesbian+anal+lick>lesbian anal lick</a>
 
<a href=http://www.collegehumor.com/out/HTTP://answersaboutall.com/?s=shaving+pussy>shaving pussy</a>
 
  
mazda99811<a href=http://groups.google.com/group/black-male-escorts-2009>black male escorts</a>
+
En http://laespiral.org/recetas/1-100/receta66.html están todos los pasos.
<a href=http://groups.google.com/group/mimi-rogers-massage-clip>mimi rogers massage clip</a>
 
<a href=http://groups.google.de/group/soapy-massage-2008>soapy massage</a>
 
<a href=http://groups.google.com/group/bacaran-bay-casino-2009>bacaran bay casino</a>
 
<a href=http://groups.google.com/group/escort-services-2009>escort services</a>
 
<a href=http://groups.google.com/group/chicago-male-massage>chicago male massage</a>
 
<a href=http://groups.google.de/group/massage-parlours>massage parlours</a>
 
<a href=http://groups.google.com/group/top-class-escort-2009>top class escort</a>
 
<a href=http://groups.google.com/group/happy-ending-massage-2009>happy ending massage</a>
 
<a href=http://groups.google.de/group/massage-therapy-2008>massage therapy</a>
 
<a href=http://groups.google.com/group/bingo-casino-play-games-free>bingo casino play games free</a>
 
<a href=http://groups.google.de/group/shower-massage>shower massage</a>
 
<a href=http://groups.google.com/group/Eros-Escorts-2009>Eros Escorts</a>
 
<a href=http://groups.google.com/group/rome-escort-2009>rome escort</a>
 
<a href=http://groups.google.com/group/Mature-Escorts>Mature Escorts</a>
 
  
 +
== Requisitos ==
  
 +
- subversion
  
mazda998899<a href=http://sultemeyer73.freehostplace.com/mapp0.html>haas cnc racing</a>
+
- libsvn0
<a href=http://sultemeyer73.freehostplace.com/mapp1.html>halimbawa ng tula ng bulaklak</a>
+
 
<a href=http://sultemeyer73.freehostplace.com/mapp2.html>capricorn rising in love</a>
+
- libapache2-svn (y obviamente Apache2 con todas sus dependencias)
<a href=http://sultemeyer73.freehostplace.com/mapp3.html>kiss lola</a>
+
 
<a href=http://sultemeyer73.freehostplace.com/mapp4.html>history of video games</a>
+
== Crear el repositorio ==
<a href=http://sultemeyer73.freehostplace.com/mapp5.html>slipknot jumpsuits</a>
+
 
<a href=http://sultemeyer73.freehostplace.com/mapp6.html>mean girls</a>
+
Los repositorios los mantenemos en el directorio ''/var/svn/''. Vamos a crear por ejemplo un SVN para hispafuentes.com que sea accesible vía http://www.hispafuentes.com/svn. Para ello ejecutamos lo siguiente:
<a href=http://sultemeyer73.freehostplace.com/mapp7.html>pink tube</a>
+
 
<a href=http://sultemeyer73.freehostplace.com/mapp8.html>christopher columbus for kids</a>
+
''cd /var/svn/''
<a href=http://sultemeyer73.freehostplace.com/mapp9.html>monthly horoscope for leo</a>
+
 
<a href=http://schorza19.fizwig.com/mapp0.html>mobile expedia</a>
+
''svnadmin create svn.hispafuentes.com''
<a href=http://schorza19.fizwig.com/mapp1.html>benders automotive</a>
+
 
<a href=http://schorza19.fizwig.com/mapp2.html>latin to english</a>
+
Si el comando se ejecuta con éxito veremos que se ha creado el subdirectorio ''/var/svn/svn.hispafuentes.com'' con el siguiente contenido:
<a href=http://schorza19.fizwig.com/mapp3.html>martin luther king s assacination</a>
+
 
<a href=http://schorza19.fizwig.com/mapp4.html>currancy converter with history</a>
+
<pre>
<a href=http://schorza19.fizwig.com/mapp5.html>legal music downloads</a>
+
-rw-rw-r--  1 root root  379 Jan 16 17:53 README.txt
<a href=http://schorza19.fizwig.com/mapp6.html>miniklip</a>
+
drwxr-xr-x  2 root root 4096 Jan 16 17:53 conf
<a href=http://schorza19.fizwig.com/mapp7.html>tula noon at ngayon</a>
+
drwxr-xr-x  2 root root 4096 Jan 16 17:53 dav
<a href=http://schorza19.fizwig.com/mapp8.html>autotrader classic vw beetle</a>
+
drwxr-sr-x  2 root root 4096 Jan 16 17:53 db
<a href=http://schorza19.fizwig.com/mapp9.html>woman undressing quicktime</a>
+
-r--r--r--  1 root root    2 Jan 16 17:53 format
<a href=http://psillos59.101freehost.com/mapp0.html>old ladies of porn</a>
+
drwxr-xr-x  2 root root 4096 Jan 16 17:53 hooks
<a href=http://psillos59.101freehost.com/mapp1.html>angelina jolie original sin</a>
+
drwxr-xr-x  2 root root 4096 Jan 16 17:53 locks
<a href=http://psillos59.101freehost.com/mapp2.html>internal organs web md</a>
+
</pre>
<a href=http://psillos59.101freehost.com/mapp3.html>stat editor runescape free</a>
+
 
<a href=http://psillos59.101freehost.com/mapp4.html>ebay motors canada</a>
+
Ahora para que apache lea el contenido del repositorio se tiene que hacer al usuario www-data dueño del repositorio:
<a href=http://psillos59.101freehost.com/mapp5.html>jena haze</a>
+
 
<a href=http://psillos59.101freehost.com/mapp6.html>u p s tracking</a>
+
''chown -R www-data.www-data /var/svn/svn.hispafuentes.com''
<a href=http://psillos59.101freehost.com/mapp7.html>apple ipods</a>
+
 
<a href=http://psillos59.101freehost.com/mapp8.html>ashley tisdale cell phone number</a>
+
== Configurando Apache 2 ==
<a href=http://psillos59.101freehost.com/mapp9.html>pizde red tube</a>
+
 
<a href=http://lopushinsky72.007gb.com/map/site_map_1.html>site map page</a>
+
Asumiendo que se ha instalado bien el módulo de SVN para Apache 2 modificamos ahora la configuración del virtualhost de hispafuentes.com para que podamos acceder al repositorio. Así que modificamos el fichero ''/etc/apache2/sites-available/www.hispafuentes.com'' y agregamos las siguientes líneas:
<a href=http://lopushinsky72.007gb.com/map/site_map_10.html>site map page</a>
+
 
<a href=http://lopushinsky72.007gb.com/map/site_map_11.html>site map page</a>
+
<pre>
<a href=http://lopushinsky72.007gb.com/map/site_map_12.html>site map page</a>
+
<Location /svn>
<a href=http://lopushinsky72.007gb.com/map/site_map_13.html>site map page</a>
+
          DAV svn
<a href=http://lopushinsky72.007gb.com/map/site_map_14.html>site map page</a>
+
          SVNPath /var/svn/svn.hispafuentes.com
<a href=http://lopushinsky72.007gb.com/map/site_map_15.html>site map page</a>
+
 
<a href=http://lopushinsky72.007gb.com/map/site_map_16.html>site map page</a>
+
  # Con autenticación LDAP para el acceso
<a href=http://lopushinsky72.007gb.com/map/site_map_17.html>site map page</a>
+
          AuthType Basic
<a href=http://lopushinsky72.007gb.com/map/site_map_18.html>site map page</a>
+
          AuthName "Repositorio"
<a href=http://lopushinsky72.007gb.com/map/site_map_19.html>site map page</a>
+
          AuthLDAPURL ldap://127.0.0.1/dc=Hispafuentes,dc=com?mail?sub
<a href=http://lopushinsky72.007gb.com/map/site_map_2.html>site map page</a>
+
          require valid-user
<a href=http://lopushinsky72.007gb.com/map/site_map_20.html>site map page</a>
+
</Location>
<a href=http://lopushinsky72.007gb.com/map/site_map_21.html>site map page</a>
+
</pre>
<a href=http://lopushinsky72.007gb.com/map/site_map_3.html>site map page</a>
+
 
<a href=http://lopushinsky72.007gb.com/map/site_map_31.html>site map page</a>
+
Luego lo único que hay que hacer es recargar la configuración de apache:
<a href=http://lopushinsky72.007gb.com/map/site_map_32.html>site map page</a>
+
 
<a href=http://lopushinsky72.007gb.com/map/site_map_33.html>site map page</a>
+
''/etc/init.d/apache2 reload''
<a href=http://lopushinsky72.007gb.com/map/site_map_34.html>site map page</a>
+
 
<a href=http://lopushinsky72.007gb.com/map/site_map_35.html>site map page</a>
+
Y probar acceder vía web.
<a href=http://lopushinsky72.007gb.com/map/site_map_36.html>site map page</a>
+
 
<a href=http://lopushinsky72.007gb.com/map/site_map_37.html>site map page</a>
+
También se puede definir un grupo en ldap (objectClass groupOfNames) y poner la linea
<a href=http://lopushinsky72.007gb.com/map/site_map_38.html>site map page</a>
+
<pre>
<a href=http://lopushinsky72.007gb.com/map/site_map_39.html>site map page</a>
+
require group cn=Grupo,ou=People,dc=hispafuentes,dc=com
<a href=http://lopushinsky72.007gb.com/map/site_map_4.html>site map page</a>
+
</pre>
<a href=http://lopushinsky72.007gb.com/map/site_map_40.html>site map page</a>
+
en lugar del require valid-user. Eso hace que puedan entrar solamente los miembros de dicho grupo.
<a href=http://lopushinsky72.007gb.com/map/site_map_5.html>site map page</a>
+
 
<a href=http://lopushinsky72.007gb.com/map/site_map_6.html>site map page</a>
+
== Permisos por directorio ==
<a href=http://lopushinsky72.007gb.com/map/site_map_7.html>site map page</a>
+
Combinado con todo esto se pueden tener permisos (lectura y/o escritura solamente). Para ello hay que añadir a la definición de la localizacion del svn (dentro del location) lo siguiente:
<a href=http://lopushinsky72.007gb.com/map/site_map_8.html>site map page</a>
+
<pre>
<a href=http://lopushinsky72.007gb.com/map/site_map_9.html>site map page</a>GYziz3  <a href="http://rxhtdpyjykyf.com/">rxhtdpyjykyf</a>, [url=http://zkjqnpyjkhfx.com/]zkjqnpyjkhfx[/url], [link=http://iqbseqrrqnoq.com/]iqbseqrrqnoq[/link], http://omtzhvhmobnj.com/
+
AuthzSVNAccessFile /var/svn/<fichero con los permisos>
 +
</pre>
 +
Esto permite especificar en el fichero de los permisos que acceso tiene cada usuario a que ramas del svn.
 +
La sintaxis del archivo es muy sencilla, en este contexto es la siguiente:
 +
* El archivo está compuesto por secciones que empiezan por un path entre corchetes ([]).
 +
* En cada una de las secciones tenemos un listado de usuarios con los permisos para cada uno (r ó w). Los usuarios en el contexto de autenticación por LDAP son las direcciones de correo (siguiendo la filosofía del SSO).
 +
* Los permisos se heredan para los directorios hijos.
 +
* El caracter '*' equivale a todos los usuarios.
 +
 
 +
Por ejemplo, en el svn de desertic (de momento con el tiny), guile@hispafuentes.com tiene acceso total y los demas solo lectura, y además toda persona que quiera entrar debe estar en el grupo Acceso SVN que esta en ou=desertic.net,dc=hispafuentes,dc=com. La configuración resultante es la siguiente:
 +
 
 +
Definición de la localización dentro del VirtualHost:
 +
<pre>
 +
  <Location /svn>
 +
        DAV svn
 +
        SVNPath /var/svn/svn.desertic.net
 +
        AuthzSVNAccessFile /var/svn/svn.desertic.net.authz
 +
        AuthType Basic
 +
        AuthName "Repositorio de Desertic.net"
 +
        AuthLDAPURL ldap://127.0.0.1/dc=hispafuentes,dc=com?mail?sub?(objectClass=person)
 +
        require group cn=Acceso SVN,ou=desertic.net,dc=hispafuentes,dc=com
 +
  </Location>
 +
</pre>
 +
 
 +
La directiva AuthzSVNAccessFile hace referencia al siguiente fichero:
 +
<pre>
 +
[/]
 +
guile@hispafuentes.com = rw
 +
* = r
 +
</pre>
 +
 
 +
Todo esto está documentado, por ejemplo, en:
 +
 
 +
http://svnbook.red-bean.com/en/1.1/ch06s04.html (buscar la sección Per-Directory Access Control)
 +
 
 +
== Referencias ==
 +
 
 +
Si alguién quiere ampliar el tema:
 +
 
 +
http://svnbook.red-bean.com/nightly/en/index.html
 +
 
 +
http://crysol.inf-cr.uclm.es/drupal/node/162

Revisión del 15:57 17 ene 2009

Por Jorgecab

Subversion es un sistema de control de versiones que nos permite mantener un repositorio de ficheros y directorios pero con la posibilidad de recuperar versiones antiguas de cada uno. En el servidor de Hispafuentes tenemos varios repositorios con SVN accesibles vía web. Aquí describiremos como crear uno y configurar Apache para poder accederlo.


Configurar el agent

En http://laespiral.org/recetas/1-100/receta66.html están todos los pasos.

Requisitos

- subversion

- libsvn0

- libapache2-svn (y obviamente Apache2 con todas sus dependencias)

Crear el repositorio

Los repositorios los mantenemos en el directorio /var/svn/. Vamos a crear por ejemplo un SVN para hispafuentes.com que sea accesible vía http://www.hispafuentes.com/svn. Para ello ejecutamos lo siguiente:

cd /var/svn/

svnadmin create svn.hispafuentes.com

Si el comando se ejecuta con éxito veremos que se ha creado el subdirectorio /var/svn/svn.hispafuentes.com con el siguiente contenido:

-rw-rw-r--  1 root root  379 Jan 16 17:53 README.txt
drwxr-xr-x  2 root root 4096 Jan 16 17:53 conf
drwxr-xr-x  2 root root 4096 Jan 16 17:53 dav
drwxr-sr-x  2 root root 4096 Jan 16 17:53 db
-r--r--r--  1 root root    2 Jan 16 17:53 format
drwxr-xr-x  2 root root 4096 Jan 16 17:53 hooks
drwxr-xr-x  2 root root 4096 Jan 16 17:53 locks

Ahora para que apache lea el contenido del repositorio se tiene que hacer al usuario www-data dueño del repositorio:

chown -R www-data.www-data /var/svn/svn.hispafuentes.com

Configurando Apache 2

Asumiendo que se ha instalado bien el módulo de SVN para Apache 2 modificamos ahora la configuración del virtualhost de hispafuentes.com para que podamos acceder al repositorio. Así que modificamos el fichero /etc/apache2/sites-available/www.hispafuentes.com y agregamos las siguientes líneas:

 <Location /svn>
           DAV svn
           SVNPath /var/svn/svn.hispafuentes.com

  # Con autenticación LDAP para el acceso
           AuthType Basic
           AuthName "Repositorio"
           AuthLDAPURL ldap://127.0.0.1/dc=Hispafuentes,dc=com?mail?sub
           require valid-user
 </Location>

Luego lo único que hay que hacer es recargar la configuración de apache:

/etc/init.d/apache2 reload

Y probar acceder vía web.

También se puede definir un grupo en ldap (objectClass groupOfNames) y poner la linea

require group cn=Grupo,ou=People,dc=hispafuentes,dc=com

en lugar del require valid-user. Eso hace que puedan entrar solamente los miembros de dicho grupo.

Permisos por directorio

Combinado con todo esto se pueden tener permisos (lectura y/o escritura solamente). Para ello hay que añadir a la definición de la localizacion del svn (dentro del location) lo siguiente:

AuthzSVNAccessFile /var/svn/<fichero con los permisos>

Esto permite especificar en el fichero de los permisos que acceso tiene cada usuario a que ramas del svn. La sintaxis del archivo es muy sencilla, en este contexto es la siguiente:

  • El archivo está compuesto por secciones que empiezan por un path entre corchetes ([]).
  • En cada una de las secciones tenemos un listado de usuarios con los permisos para cada uno (r ó w). Los usuarios en el contexto de autenticación por LDAP son las direcciones de correo (siguiendo la filosofía del SSO).
  • Los permisos se heredan para los directorios hijos.
  • El caracter '*' equivale a todos los usuarios.

Por ejemplo, en el svn de desertic (de momento con el tiny), guile@hispafuentes.com tiene acceso total y los demas solo lectura, y además toda persona que quiera entrar debe estar en el grupo Acceso SVN que esta en ou=desertic.net,dc=hispafuentes,dc=com. La configuración resultante es la siguiente:

Definición de la localización dentro del VirtualHost:

  <Location /svn>
        DAV svn
        SVNPath /var/svn/svn.desertic.net
        AuthzSVNAccessFile /var/svn/svn.desertic.net.authz
        AuthType Basic
        AuthName "Repositorio de Desertic.net"
        AuthLDAPURL ldap://127.0.0.1/dc=hispafuentes,dc=com?mail?sub?(objectClass=person)
        require group cn=Acceso SVN,ou=desertic.net,dc=hispafuentes,dc=com
   </Location>

La directiva AuthzSVNAccessFile hace referencia al siguiente fichero:

[/]
guile@hispafuentes.com = rw
* = r

Todo esto está documentado, por ejemplo, en:

http://svnbook.red-bean.com/en/1.1/ch06s04.html (buscar la sección Per-Directory Access Control)

Referencias

Si alguién quiere ampliar el tema:

http://svnbook.red-bean.com/nightly/en/index.html

http://crysol.inf-cr.uclm.es/drupal/node/162