<?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>Defcrypt &#187; Subversion</title>
	<atom:link href="http://defcrypt.ixde.net/index.php/category/subversion/feed/" rel="self" type="application/rss+xml" />
	<link>http://defcrypt.ixde.net</link>
	<description>Blog sobre programación y seguridad informática</description>
	<lastBuildDate>Sun, 09 Aug 2009 21:20:56 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Tutorial básico de Subversion</title>
		<link>http://defcrypt.ixde.net/index.php/2008/12/tutorial-muy-basico-de-subversion/</link>
		<comments>http://defcrypt.ixde.net/index.php/2008/12/tutorial-muy-basico-de-subversion/#comments</comments>
		<pubDate>Mon, 01 Dec 2008 12:05:57 +0000</pubDate>
		<dc:creator>kaizo</dc:creator>
				<category><![CDATA[Subversion]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[SVN]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://defcrypt.ixde.net/?p=32</guid>
		<description><![CDATA[Subversion es un sistema gestor de versiones. Se usa para mantener el historial de ficheros tales como código fuente, páginas web y documentación. dGil me pidió que lo instalara para usarlo con Pynigma y que realiza un tutorial básico.
- Instalación
Para sistemas Debian basta con hacer:

aptitude install subversion

Para Sistemas Operativos diferentes se puede acceder a la [...]]]></description>
			<content:encoded><![CDATA[<p>Subversion es un sistema gestor de versiones. Se usa para mantener el historial de ficheros tales como código fuente, páginas web y documentación. dGil me pidió que lo instalara para usarlo con Pynigma y que realiza un tutorial básico.</p>
<p><strong>- Instalación</strong><br />
Para sistemas Debian basta con hacer:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">aptitude</span> <span style="color: #c20cb9; font-weight: bold;">install</span> subversion</pre></div></div>

<p>Para Sistemas Operativos diferentes se puede acceder a la web y bajarse el archivo correspondiente:<br />
<a href="http://subversion.tigris.org/">http://subversion.tigris.org/</a></p>
<p><strong>- Crear un repositorio</strong><br />
Para crear un repositorio en un directorio llamado &#8220;repositorio&#8221; haremos:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">svnadmin</span> create repositorio</pre></div></div>

<p>Esto creará una carpeta nueva (si no existía antes) que contendrá varios ficheros y carpetas que sirven para cambiar la configuración del repositorio creado (usuarios, permisos de acceso, etc) pero si tenemos el repositorio solo para úso personal, ya sea para llevarlo en un pen o tenerlo en el ordenador, no necesitamos tocar ninguno de esos archivos.<br />
<strong><br />
- Hacer un envío inicial al repositorio</strong><br />
Supongamos que tenemos el proyecto que queremos manejar con Subversion en el directorio $HOME/Pynigma<br />
Para guardar todo lo que esté dentro de la carpeta Pynigma en el repositorio usaremos el comando import. El comando completo es:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">svn</span> import <span style="color: #c20cb9; font-weight: bold;">file</span>:<span style="color: #000000; font-weight: bold;">///</span>ruta_repositorio<span style="color: #000000; font-weight: bold;">/</span> <span style="color: #007800;">$HOME</span><span style="color: #000000; font-weight: bold;">/</span>Pynigma <span style="color: #660033;">-m</span> <span style="color: #ff0000;">&quot;mensaje_import&quot;</span></pre></div></div>

<p>mensaje_import es un mensaje que saldrá al consultar el repositorio del log, normalmente querrás poner algo como &#8220;Importación inicial FECHA_IMPORTACION&#8221;<br />
o algo del estilo.</p>
<p><strong>- Hacer una descarga inicial del repositorio</strong><br />
Primero creamos una carpeta donde vamos a descargar el repositorio con</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">mkdir</span> carpeta_proyecto</pre></div></div>

<p>Ahora usaremos checkout para copiar a carpeta_proyecto todo lo que haya dentro del repositorio</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">svn</span> checkout <span style="color: #c20cb9; font-weight: bold;">file</span>:<span style="color: #000000; font-weight: bold;">///</span>ruta_repositorio<span style="color: #000000; font-weight: bold;">/</span> .<span style="color: #000000; font-weight: bold;">/</span>carpeta_proyecto</pre></div></div>

<p><strong>- Trabajar con la copia local del repositorio</strong><br />
Una vez hecho lo anterior se habrá descargado todo lo que hay en el repositorio y unas carpetas ocultas (en UNIX) .svn en cada directorio del repositorio (Estas carpetas controlan los cambios en el repositorio y el lugar donde está el repositorio)</p>
<p>Ahora ya podemos hacer cambios en los archivos copiados (normalmente archivos código fuente) y Subversion se encargará de vigilar los cambios. Podemos crear directorios que Subversion controlará con (suponiendo que estamos dentro de la copia del repositorio)</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">svn</span> <span style="color: #c20cb9; font-weight: bold;">mkdir</span> nuevo_directorio</pre></div></div>

<p>También podemos crear archivos nuevos dentro del repositorio (algún módulo nuevo del programa, por ejemplo) pero si no le decimos a Subversion que controle ese archivo simplemente hará cómo si no estubiera ahí. Para añadir nuevos archivos bajo el control de Subversion usaremos</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">svn</span> add nombre_fichero</pre></div></div>

<p>Podemos controlar todos los cambios que llevemos hechos con</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">svn</span> status</pre></div></div>

<p>Para ver con más detalle los cambios hechos en archivos de texto que ya hemos bajado</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">svn</span> <span style="color: #c20cb9; font-weight: bold;">diff</span></pre></div></div>

<p>Muy bién, ahora hemos modificado algunos archivos, creado nuevas carpeta, creado archivos nuevos, y podemos ver los cambios, pero ¿Cómo subir estos cambios al repositorio? Haremos eso con:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">svn</span> commit <span style="color: #660033;">-m</span> <span style="color: #ff0000;">&quot;mensaje informativo&quot;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://defcrypt.ixde.net/index.php/2008/12/tutorial-muy-basico-de-subversion/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
