<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>cablop.net - Software Tips &#187; Control de Versiones</title>
	<atom:link href="http://sw.cablop.net/tips/category/desarrollo/control-de-versiones/feed/" rel="self" type="application/rss+xml" />
	<link>http://sw.cablop.net/tips</link>
	<description>Tips de software, hardware... y algo más</description>
	<lastBuildDate>Fri, 05 Feb 2010 16:50:02 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Habilitar un repositorio SVN para que permita modificar un log anterior</title>
		<link>http://sw.cablop.net/tips/2009/10/27/habilitar-un-repositorio-svn-para-que-permita-modificar-un-log-anterior/</link>
		<comments>http://sw.cablop.net/tips/2009/10/27/habilitar-un-repositorio-svn-para-que-permita-modificar-un-log-anterior/#comments</comments>
		<pubDate>Wed, 28 Oct 2009 01:15:54 +0000</pubDate>
		<dc:creator>天龙</dc:creator>
				<category><![CDATA[SVN]]></category>
		<category><![CDATA[hooks]]></category>
		<category><![CDATA[log]]></category>
		<category><![CDATA[TortoiseSVN]]></category>

		<guid isPermaLink="false">http://sw.cablop.net/tips/?p=135</guid>
		<description><![CDATA[Para los que les ha salido el siguiente error al tratar de cambiar un log viejo (a mí me salió desde el TortoiseSVN)
DAV request failed; it's possible that the repository's pre-revprop-change hook either failed or is non-existent
Hasta donde tengo entendido, por el artículo que consulte, no es posible cambiar los logs porque éstos no están [...]]]></description>
			<content:encoded><![CDATA[<p>Para los que les ha salido el siguiente error al tratar de cambiar un log viejo (a mí me salió desde el TortoiseSVN)</p>
<p style="padding-left: 30px"><span style="color: #808080"><code>DAV request failed; it's possible that the repository's pre-revprop-change hook either failed or is non-existent</code></span></p>
<p>Hasta donde tengo entendido, por el artículo que consulte, no es posible cambiar los logs porque éstos no están siendo controlados por el sistema de control de versiones.</p>
<p>Toca habilitar un script que permita hacer esto sin que arruinemos el repositorio.</p>
<p>Los pasos para que podamos editar los logs viejos son:</p>
<ol>
<li>Vamos al directorio hooks de nuestro repositorio en el servidor.</li>
<li>Renombramos el nombre del archivo <span style="color: #339966">pre-revprop-change.tmpl</span> por <span style="color: #339966">pre-revprop-change</span>.</li>
<li>Luego al archivo que tenemos le damos permisos de ejecución, 755.</li>
</ol>
<p>Con esto debe bastar para poder modificar logs viejos en el SVN.</p>
<p><strong>Fuente:</strong></p>
<p><a href="http://jacqueschirag.wordpress.com/2007/07/22/changing-revision-property-in-subversion-with-tortoisesvn/" target="_blank">Changing a revision property in Subversion</a></p>
<div id="_mcePaste" style="overflow: hidden;width: 1px;height: 1px"><code>pre-revprop-change.tmpl pre-revprop-change</code></div>
]]></content:encoded>
			<wfw:commentRss>http://sw.cablop.net/tips/2009/10/27/habilitar-un-repositorio-svn-para-que-permita-modificar-un-log-anterior/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bazaar via ftp o de como crear un repositorio de control de versiones en un hosting compartido, sin acceso ssh&#8230;</title>
		<link>http://sw.cablop.net/tips/2009/08/29/bazaar-via-ftp-o-de-como-crear-un-repositorio-de-control-de-versiones-en-un-hosting-compartido-sin-acceso-ssh/</link>
		<comments>http://sw.cablop.net/tips/2009/08/29/bazaar-via-ftp-o-de-como-crear-un-repositorio-de-control-de-versiones-en-un-hosting-compartido-sin-acceso-ssh/#comments</comments>
		<pubDate>Sat, 29 Aug 2009 16:39:09 +0000</pubDate>
		<dc:creator>天龙</dc:creator>
				<category><![CDATA[Bazaar]]></category>
		<category><![CDATA[Control de Versiones]]></category>
		<category><![CDATA[ftp]]></category>
		<category><![CDATA[hosting compartido]]></category>

		<guid isPermaLink="false">http://sw.cablop.net/tips/?p=81</guid>
		<description><![CDATA[Ni es tan complicado como montar un subversion compilandolo del lado del servidor, vaya uno a saber como si no tenemos ssh, ni tan fácil como crearlo localmente. Pero posible.
Esto es particularmente útil cuando queremos instalar un repositorio en nuestro sitio web pero no tenemos acceso por telnet ni ssh ni nada por el estilo.
El [...]]]></description>
			<content:encoded><![CDATA[<p>Ni es tan complicado como montar un subversion compilandolo del lado del servidor, vaya uno a saber como si no tenemos ssh, ni tan fácil como crearlo localmente. Pero posible.</p>
<p>Esto es particularmente útil cuando queremos instalar un repositorio en nuestro sitio web pero no tenemos acceso por telnet ni ssh ni nada por el estilo.</p>
<p><strong>El método</strong></p>
<p><span style="text-decoration: underline">¿Qué necesitamos?</span></p>
<ul>
<li>Bueno, dos equipos, el local &#8211; nuestra estación de trabajo &#8211; y el servidor compartido &#8211; donde está nuestro sitio web -.</li>
<li>Acceso ftp al servidor.</li>
<li>Instalador de <em>Bazaar</em> para nuestro sistema operativo local.</li>
<li>Plugin <em>push_and_update</em> para <em>Bazaar</em>.</li>
<li><em>Python</em> 2.4 o superior, por supuesto, es requerimiento de <em>Bazaar</em>.</li>
</ul>
<p><span style="text-decoration: underline">Creación de la cuenta de ftp en el servidor</span></p>
<p>Comenzaremos por el servidor, algunas indicaciones serán algo generales, deben realizarse de acuerdo a las herramientas que su proveedor de hosting disponga.</p>
<p>1. Primero crearemos la cuenta de usuario de ftp remoto, en este artículo será <em>bzr_usuario</em>.</p>
<p>2. Luego, crearemos la carpeta donde queremos que nuestro repositorio resida. Yo he creado una carpeta que no tiene acceso por http (no todo lo que estoy desarrollando es de dominio público). En este artículo la ruta será <em>ftp://dominio.com/bazaar/repositorio</em>.</p>
<p>3. Asignamos la carpeta al usuario ftp que hemos creado. En algunos casos esto nos simplifica la vida, ya que el usuario verá esa carpeta como la raíz del sitio ftp y no puede acceder a otras ubicaciones (en el caso en que trabajemos con más personas en el mismo proyecto, por ejemplo, nos ahorrará dolores de cabeza).</p>
<p>4. Verificamos que la conexión con el servidor pueda establecerse y que podamos manipular el contenido de la carpeta vía ftp.</p>
<p><span style="text-decoration: underline">Instalación de <em>Bazaar</em> y plugin <em>push_and_update</em></span></p>
<p>Ahora vamos a nuestro equipo cliente, la estación de trabajo.</p>
<p>1. Aquí el primer paso consiste en instalar <em>Bazaar</em>, no entraré en detalles de como realizar esta instalación, cada sistema operativo tiene su propio método.</p>
<p>2. Luego instalamos el plugin <em>push_and_update</em>. Nos ubicamos en el directorio de <em>Bazaar</em>, y ahí en el directorio <em>plugins</em>. Si el directorio <em>plugins</em> no existe procederemos a crearlo. Por consola y empleando el mismo <em>Bazaar</em> podemos instalar el plugin con el siguiente comando:</p>
<p style="padding-left: 30px"><span style="color: #993300">bzr branch lp:bzr-push-and-update push_and_update</span></p>
<p>Hay alternativas a este comando, por ejemplo:</p>
<p style="padding-left: 30px"><span style="color: #993300">bzr branch <span class="https">https://launchpad.net/bzr-push-and-update</span> push_and_update </span></p>
<p>O bajarlo e instalarlo manualmente.</p>
<p>Este plugin es muy importante, ya que nos mantendrá nuestro repositorio en el servidor al día.</p>
<p><span style="text-decoration: underline">Creación del repositorio y publicación en el servidor<br />
</span></p>
<p>Esta parte consiste en la creación de un repositorio local en la estación de trabajo para luego subirlo a nuestro servidor.</p>
<p>1. Creamos una carpeta para el repositorio. La dejamos vacía, nuestro proposito en este momento es solo crear la estructura del repositorio.</p>
<p>2. Nos ubicamos por consola dentro de la carpeta creada e iniciamos el repositorio, el comando es:</p>
<p style="padding-left: 30px"><span style="color: #993300">bzr init</span></p>
<p>3. Procedemos a crear la estructura del repositorio en nuestro servidor:</p>
<p style="padding-left: 30px"><span style="color: #993300">bzr push &#45;&#45;create-prefix ftp://bzr_usuario<span class="mailto">@dominio.com/bazaar/repositorio</span></span></p>
<p>El directorio no debería existir en el servidor ya que se va a crear uno nuevo. Sin embargo, si tenemos un directorio existente y vacío podemos añadir la opción <em>&#45;&#45;use-existing-dir</em> a este comando.</p>
<p>4. Realizamos el primer envío de contenido al repositorio en el servidor con prácticamente el mismo comando:</p>
<p style="padding-left: 30px"><span style="color: #993300">bzr push ftp://bzr_usuario<span class="mailto">@dominio.com/bazaar/repositorio</span></span></p>
<p>Aunque ya podemos omitir la ruta a nuestro directorio ftp, <em>Bazaar</em> la recordará por nosotros, aunque siempre nos preguntará por la contraseña.</p>
<p>5. Para traer la información desde el servidor a nustros equipos podemos usar el comando <em>merge</em> o el comando <em>pull</em>.</p>
<p style="padding-left: 30px"><span style="color: #993300">bzr merge ftp://bzr_usuario<span class="mailto">@dominio.com/bazaar/repositorio</span></span></p>
<p><strong>Fuentes:</strong></p>
<ul>
<li><a href="http://stackoverflow.com/questions/460632/bazaar-bound-branch-commit-and-update" target="_blank">Bazaar bound branch commit-and-update</a></li>
<li><a href="http://dentharg.wordpress.com/2007/02/14/bazaar-ng-private-repositories-on-shared-hosting/" target="_blank">Bazaar-NG: private repositories on shared hosting</a></li>
<li><a href="https://code.launchpad.net/bzr-push-and-update" target="_blank">Bazaar plugin to update remote trees</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://sw.cablop.net/tips/2009/08/29/bazaar-via-ftp-o-de-como-crear-un-repositorio-de-control-de-versiones-en-un-hosting-compartido-sin-acceso-ssh/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Como configurar Subversion (SVN) en Apache 2 sobre Ubuntu</title>
		<link>http://sw.cablop.net/tips/2009/08/29/como-configurar-subversion-svn-en-apache-2-sobre-ubuntu/</link>
		<comments>http://sw.cablop.net/tips/2009/08/29/como-configurar-subversion-svn-en-apache-2-sobre-ubuntu/#comments</comments>
		<pubDate>Sat, 29 Aug 2009 15:42:01 +0000</pubDate>
		<dc:creator>天龙</dc:creator>
				<category><![CDATA[Apache 2]]></category>
		<category><![CDATA[SVN]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Subversion]]></category>

		<guid isPermaLink="false">http://sw.cablop.net/tips/?p=34</guid>
		<description><![CDATA[Este post esta basado en este Subversion over Apache 2 on Ubuntu, en inglés.
Subversion o (SVN) es una poderosa herramienta de control de versiones (para desarrollo, diseño e incluso documentos) que puede instalarse sobre el servidor Apache 2 y esto en Ubuntu se logra con unos sencillos pasos.
Primero, el trasfondo.
Asumiremos que se tiene instalado Apache [...]]]></description>
			<content:encoded><![CDATA[<p>Este post esta basado en este <a href="http://davidwinter.me.uk/articles/2006/02/16/subversion-over-apache-2-on-ubuntu/" target="_blank">Subversion over Apache 2 on Ubuntu</a>, en inglés.</p>
<p>Subversion o (SVN) es una poderosa herramienta de control de versiones (para desarrollo, diseño e incluso documentos) que puede instalarse sobre el servidor Apache 2 y esto en Ubuntu se logra con unos sencillos pasos.</p>
<p><strong>Primero, el trasfondo.</strong></p>
<p>Asumiremos que se tiene instalado Apache 2 en el sistema Ubuntu entonces procederemos paso a paso a ir instalando y configurando lo demás.</p>
<p><strong>Instalación de Subversion y mod para Apache</strong></p>
<p>Esto lo logramos con la línea:</p>
<p style="padding-left: 30px"><code><span style="color: #800000">sudo apt-get install subversion libapache2-svn</span></code></p>
<p>El módulo emplea WebDAV para trasmitir los archivos a Subversion, esto nos facilitará mucho las cosas ya que emplearemos el mismo puerto 80 empleado por Apache 2.</p>
<p>Ahora procedemos a habilitar el módulo (aunque esto teóricamente se hace por defecto al instalarlo).</p>
<p style="padding-left: 30px"><code><span style="color: #800000">sudo a2enmod dav_svn</span></code></p>
<p><strong>Creación de un repositotio SVN</strong></p>
<p>Crearemos el repositorio y su estructura.</p>
<p style="padding-left: 30px"><code><span style="color: #800000">sudo mkdir /ruta/local/al/repositorio<br />
sudo svnadmin create /ruta/local/al/repositorio</span></code></p>
<p>Haremos que Apache 2 sea el propietario (owner) del repositorio recién creado</p>
<p style="padding-left: 30px"><code><span style="color: #800000">sudo chown -R www-data /home/svn</span></code></p>
<p>Y crearemos un archivo de contraseñas que emplearemos para restringir el acceso al repositorio</p>
<p style="padding-left: 30px"><code><span style="color: #800000">sudo htpasswd -cm /ruta/al/archivo_de_contraseñas.passwd nombre_del_usuario</span></code></p>
<p>La consola preguntará por la contraseña que desearemos asignar al usuario.</p>
<p>Si ya disponemos de un archivo existente y solo queremos agregar un nuevo usuario entonces el comando que necesitaremos es:</p>
<p style="padding-left: 30px"><code><span style="color: #800000">sudo htpasswd -m /ruta/al/archivo_de_contraseñas.passwd nombre_del_nuevo_usuario</span></code></p>
<p>Ahora, editaremos el archivo <span style="color: #008000">/etc/apache2/mods-enabled/dav_svn.conf</span></p>
<p>En la consola lo consegumos mediante</p>
<p style="padding-left: 30px"><code><span style="color: #800000">sudo nano /etc/apache2/mods-enabled/dav_svn.conf</span></code></p>
<p>Y en el entorno gráfico mediante:</p>
<p style="padding-left: 30px"><code><span style="color: #800000">sudo -b gedit /etc/apache2/mods-enabled/dav_svn.conf</span></code></p>
<p>Tendremos que añadir las siguientes líneas al archivo por cada repositorio que deseemos instalar:</p>
<p style="padding-left: 30px"><code><span style="color: #000080">&lt;Location /ruta/en/url/al/repositorio&gt;<br />
    DAV svn<br />
    SVNPath /ruta/local/al/repositorio<br />
&nbsp;<br />
    AuthType Basic<br />
    AuthName "Subversion Repository"<br />
    AuthUserFile /ruta/al/archivo_de_contraseñas.passwd<br />
    Require valid-user<br />
&lt;/Location&gt;</span></code></p>
<p>Naturalmente debemos remplazar /ruta/en/url/al/repositorio, /ruta/local/al/repositorio y /ruta/al/archivo_de_contraseñas.passwd por las ubicaciones y archivos reales que vamos a emplear.</p>
<p>Y por último debemos reiniciar el servidor Apache 2</p>
<p style="padding-left: 30px"><code><span style="color: #800000">sudo /etc/init.d/apache2 restart</span></code><code></p>
<p><strong>Hemos terminado</strong></p>
<p>Podemos comprobar que el repositorio está funcionando en nuestro navegador web:</p>
<p>http://nuestro.servidor/ruta/en/url/al/repositorio</p>
<p>Y el navegador nos preguntará por nuestras credenciales de acceso (el nombre que dimos anteriormente y la contraseña que le asignamos).</code></p>
]]></content:encoded>
			<wfw:commentRss>http://sw.cablop.net/tips/2009/08/29/como-configurar-subversion-svn-en-apache-2-sobre-ubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
