emerge subversion. Hay que fujarse en que lo haga con soporte para Python y Apache. Una vez instalado creo un primer repositorio con svnadmin create /home/svn/repositorios/proyecto.
Ahora configuro Apache. Primero le diré a Apache2 que cargue los módulos de WebDAV, SVN y Authz añadiendo a la variable APACHE2_OPTS del archivo /etc/conf.d/apache2 las opciones -D DAV -D SVN -D SVN_AUTHZ, además de las que ya había: -D PHP5 -D PYTHON. Recargo Apache con /etc/init.d/apache2 reload y ya está.
Ahora el vhost y la autentificación. En mi caso siempre he querido un vhost para esto y lo creo así:
<Directory "/home/svn/"> Options FollowSymLinks Indexes ExecCGI AllowOverride All <IfModule mod_access.c> Order deny,allow Deny from none Allow from all </IfModule> </Directory> <VirtualHost *:80> ServerName svn.xergio.net ServerAlias www.svn.xergio.net svn.xrg.es www.svn.xrg.es DocumentRoot /home/svn/www ErrorLog logs/svn.xergio.net-error_log CustomLog logs/svn.xergio.net-access_log combined # ScriptAlias /source /home/svn/www/bin/cgi/viewvc.cgi # ScriptAlias /query /home/svn/www/bin/cgi/query.cgi <Location "/svn/proyecto"> DAV svn SVNPath /home/svn/repositorios/proyecto # AuthType Basic # AuthName "Repositorio SVN" # AuthUserFile /home/svn/config/users.proyecto # AuthzSVNAccessFile /home/svn/config/access # Require valid-user </Location> </VirtualHost>Las líneas comentadas significan que eso ahora no nos sirve, ahora las iremos descomentando. Bien, como podemos ver tengo una ruta base,
/home/svn/ donde dentro de repositorios/ meto cada proyecto (en este caso uno llamado "proyecto"), en config/ meto el archivo de accesos que ya veremos y los usuarios para cada proyecto, y un directorio www/ que será para meter dentro el ViewVC.
Hay que destacar que para cada proyecto se tendrá que crear un bloque Location. Esto me gustaría cambiarlo en un futuro...
Si pedimos http://svn.eldominio.com/svn/proyecto podremos obtener el proyecto llamado "proyecto".
/home/svn/config/users.proyecto con el comando htpasswd2 -m -c /home/svn/config/users.proyecto USUARIO. El resto de veces no se pondrá la -c, sino nos cargamos el archivo.
Ahora la lista de accesos será así:
[proyecto:/] xergio = rw test = rEsto significa que para todo el proyecto llamado "proyecto", los usuarios xergio y test podrán leer (descargarse el proyecto), el usuario xergio podrá también escribir (hacer commits), y el resto nada de nada. Habría un bloque similar para cada proyecto, y además podríamos poner permisos a directorios dentro de cada proyecto. Recargamos de nuevo Apache2 y ya estará todo listo.
./viewvc-install. Me pedirá dónde lo quiero instalar, le digo que ahí mismo, y configuro el viewvc.conf así:
[general] #cvs_roots = cvs: /home/cvsroot #svn_roots = root_parents = /home/svn/repositorios : svn #default_root = #rcs_path = /usr/bin/ #cvsnt_exe_path = #cvsnt_exe_path = cvs #cvsnt_exe_path = K:Program Filescvsntcvs.exe #cvsnt_exe_path = /usr/bin/cvs use_rcsparse = 0 #svn_path = /usr/bin/ #mime_types_file = /usr/local/apache/conf/mime.types address = Lo que sea, admite HTML forbidden = kv_files = languages = en-us [options] root_as_url_component = 1 default_file_view = log checkout_magic = 0 http_expiration_time = 600 generate_etags = 1 sort_by = file sort_group_dirs = 1 hide_attic = 1 log_sort = date diff_format = h hide_cvsroot = 1 hr_breakable = 1 hr_funout = 0 hr_ignore_white = 1 hr_ignore_keyword_subst = 1 hr_intraline = 0 allow_annotate = 1 allow_markup = 1 allow_compress = 1 template_dir = templates #docroot = /docroot show_subdir_lastmod = 0 show_logs = 1 show_log_in_markup = 1 cross_copies = 1 #use_localtime = 1 py2html_path = . short_log_len = 80 use_enscript = 1 enscript_path = use_highlight = 0 use_php = 0 allow_tar = 1 use_cvsgraph = 0 use_re_search = 1 use_pagesize = 0 limit_changes = 100Hay más cosas. pero no las he tocado. Por cierto, descomentamos del vhost de Apache las dos líneas que quedaban. Viendo la dirección, accediendo a http://svn.eldominio.com/source/ veremos ya nuestro ViewVC. Ale, fijo que se me olvidaron cosas, ya las añadiré si me doy cuenta.
Pulsa en los títulos para ver información sobre cómo comentar.
Todos los campos del formulario son opcionales menos el del PIN.
Usa el tabulador para autocompletar los nicks de otros comentaristas.
Si escribes @ y pulsas la tecla tabulador varias veces podrás recorrer la lista de nicks usados
Y si escribes # (almoadilla) y número (Ej.: #5) se substituirá directamente el nick del comentario correspondienmte al pulsar el tabulador.
Tags: a, strong, b, em, u, code, cite.
El tag a admite la propiedad href="..." para indicar la dirección.
Los tags también tienen autocompletado (al igual que los nicks). Para usarlos se pone por ejemplo strong + TABULADOR.

Todo el contenido bajo el dominio XERGIO.NET está sujeto a la licencia Creative Commons con las condiciones BY-SA. Web estandarizada en XHTML 1.0, CSS 2, RSS 2 y Atom 1.0.