Comunidad de diseño web y desarrollo en internet

Propiedades svn en subversion a archivos mediante patrones

Subversion es un sistema para el manejo de las versiones de los archivos, que permite, entre otras cosas que varias personas puedan trabajar a distancia en un mismo proyecto (de Flex, por ejemplo), o poder realizar muchos cambios en un archivo, pudiendo volver siempre a la versión anterior. Para manejar Subversion existen numerosos clientes (como una extensión de Ecplise, que pueden aprender a instalar en este tip de Dano) de los que quizá el más extendido y mejor integrado con Windows es TortoiseSVN.

Pero si lo montamos sobre un servidor Apache, Subversion (o svn) puede convertirse en un potente contenedor de nuestros proyectos web en desarrollo, ya que podremos usar svn para subir al servidor los archivos, y cualquier navegador para verlos. Sin embargo, para que los archivos se visualicen, tenemos que aplicarles la propiedad svn:mime-type (lo que sería el header correspondiente), ya que de otra manera, el navegador no sabe como interpretar el archivo, y mostraría el texto plano, o forzaría a descargar el archivo. Y claro, eso es algo que no nos interesa por ejemplo en los archivos html, cuyo mime-type debería ser "text/html", para que el navegador nos muestre la página con sus colores y estilos y no el código fuente. Ocurre que tengo a cierto individuo en mis contactos que a cada rato me pregunta como se hace esto para un archivo. Yo le respondo que busque donde ponga algo parecido a Properties en su cliente de svn, y allí añada svn:mime-type, con el valor text/html.

Pensé que tenía que haber una manera más efectiva de hacer esto que de archivo en archivo, y buscando en la documentación de Subversion encontré que existe un archivo de configuración (parecido al httpd.conf de Apache o a php.ini), que en una instalación de Subversion sobre Windows XP debería estar en esta ruta:

C:\Documents and Settings\<USUARIO>\Datos de programa\Subversion\config

De todas formas, con TortoiseSVN, pueden encontrarlo en el menú Settings, haciendo click en el botón Edit de donde pone Subversion configuration file.

Allí podemos activar las propiedades automáticas, que nos permitirán asignar propiedades a archivos que encajen en un cierto patrón (su extensión, en este caso)

Para que las propiedades automáticas se activen, tienen que buscar las siguientes líneas:

Código :

### Section for configuring automatic properties.
# [auto-props]
### The format of the entries is:
###   file-name-pattern = propname[=value][;propname[=value]...]
### The file-name-pattern can contain wildcards (such as '*' and
### '?').  All entries which match will be applied to the file.
### Note that auto-props functionality must be enabled, which
### is typically done by setting the 'enable-auto-props' option.
# *.c = svn:eol-style=native
# *.cpp = svn:eol-style=native
# *.h = svn:eol-style=native
# *.dsp = svn:eol-style=CRLF
# *.dsw = svn:eol-style=CRLF
# *.sh = svn:eol-style=native;svn:executable
# *.txt = svn:eol-style=native
# *.png = svn:mime-type=image/png
# *.jpg = svn:mime-type=image/jpeg


Y allí quiten el comentario (el # y el espacio) de la segunda línea, dejando [auto-props]. Después, tienen que quitar los comentarios de cada una de las reglas que quieran aplicar, por ejemplo la línea sin comentar

Código :

*.png = svn:mime-type=image/png
hará (entre otras cosas) que el navegador pueda mostrar las imágenes png sin forzar su descarga. También podemos añadir nuestros propios patrones, por ejemplo estos:

Código :

*.html = svn:mime-type=text/html
*.css = svn:mime-type=text/css
*.swf = svn:mime-type=application/x-shockwave-flash


Así, la próxima vez que hagan un commit en los archivos, estos tendrán el header adecuado, que permitirá verlos en el navegador.

Espero que les haya servido... aunque sé de uno a quien sí :P

¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.

Publica tu comentario

o puedes...

¿Estás registrado en Cristalab y quieres
publicar tu URL y avatar?

¿No estás registrado aún pero quieres hacerlo antes de publicar tu comentario?

Registrate