Trabajando con Subversion
El servidor mantiene un "depósito" central, que es la base de datos principalç
que contiene el código base común publicado del proyecto. Los desarrolladores
individuales tienen sus propias "copias de trabajo", que son copias locales de
la base de datos de un momento específico junto con los cambios locales que el
desarrollador no cargó al servidor. Cuando un desarrollador quiere compartir
sus cambios con el resto del equipo simplemente "envía" sus cambios al
servidor usando el programa cliente, que se encarga de cargarlos y mezclarlos
con los cambios hechos por los otros desarrolladores.
Si estás ejecutando Linux, FreeBSD o cualquier otro clon moderno de UNIX entonces
sólo necesitas instalar el software oficial SVN, versión 1.0 o superior,
para tu OS. Todas las distribuciones comunes de Linux vienen ya con el paquete
SVN.
También hay una interfaz GUI interplataforma para el sistema de revisión
Subversion llamado RapidSVN, disponible para los
Unixes(las distribuciones GNU/Linux, FreeBSD, Sun Solaris y otras), Mac OS X
y Windows.
Nota
El servidor ejecuta Subversion 1.1 que se puede acceder con un cliente
versión 1.0, 1.1 o 1.2.
SVN no funciona con la localización UTF-8. Tienes que cambiar el locale a
ISO8859 antes de cualquier acción con SVN.
Si estás ejecutando AmigaOS, necesitarás una pila TCP/IP y algún puerto
de SVN instalados. Una opción es el puerto para Amiga de Olaf Barthel que se
puede hallar en AminNET (busca "subversion").
Si ejecutars Microsoft Windows (TM) puedes usar el cliente SVN TortoisseSVN, especialmente si
te gusta usar Windows Explorer. Este programa es de fuente abierta y gratuito, con muchas características
y un buen soporte. Por favor asegúrate también que presentas los archivos con los fin de renglón estilo UNIX,
de otro modo puedes romper la generación de código.
Si los archivos que estás cambiando tienen puesta la propiedad de SVN eol-style:nativa
(ahora los nuevos archivos de cualquier modo) entonces puedes olvidarte, y los fin de renglón
(EOL) se convertirán automáticamente.
Ejemplos de editores que se sepa que pueden guardar tal EOL incluyen
Notepad++, TigerPad (free
enhanced notepad), DOS Navigator OSP, y muchos más.
También está disponible el cliente RapidSVN, como se dijo antes.
Si ejecutas MacOS X puedes usar uno de los varios puertos de SVN disponibles
como el puerto de Subversion de Martin Ott. También puedes querer instalar un cliente
adicional con GUI como svnX. svnX es el cliente SVN más puesto al día para OS X y
también soporta la integración con, entre otros, el editor de texto gratuito
Textwrangler (antes BBedit Lite). Fíjate que cuando uses Textwrangler u otro editor
de texto Mac, necesitarás cambiar la codificación de los caracteres del 'Macos roman' a
'ISO latin 1' (ISO8859) para tus documentos (haz el cambio en las preferencias). Para Textwrangler
todas las restantes configuraciones son correctas por omisión.
Todas las aplicaciones nombradas son freeware y están disponibles como Binario Universal
para las Mac PPC e Intel. Como ya se dijo, también está disponible RapidSVN.
A diferencia de CVS, no necesitas ingresar (login) en el servidor. En su
lugar, SVN preguntará cuando necesite conocer tu cuenta de usuario y
contraseña.
Nota
El depósito de AROS está funcionando sobre un srvidor SVN protegido por
contraseña, lo que significa que necesitas solicitar acceso para
poder colaborar en el desarrollo. A pedido de Amiga Inc., el acceso
anónimo de solo-lectura al depósito está deshabilitado.
Para obtener una copia de los fuentes de AROS usa el comando "checkout", así:
> svn checkout https://svn.aros.org/svn/aros/trunk/AROS
Esto creará un directorio llamado AROS y lo poblará con todos los fuentes,
lo que podría tomar bastante tiempo si tienes una conexión lenta a la red.
El módulo "contrib" contiene los programas de terceros que han sido transferidos
a AROS. Tienes que descarga para compilar todos los sabores de AROS:
> cd AROS
> svn checkout https://svn.aros.org/svn/aros/trunk/contrib
Consejo
Después de la descarga, SNV recordará de dónde vino el fuente.
Además de los fuentes principales de AROS que descargaste en la sección
previa, hay también otras cosas en el servidor SVN no relacionadas directamente
al núcleo del sistema operativo. Por ejemplo, el módulo "binaries" que
contiene imágenes como capturas de pantalla, fondos de escritorio y cosas similares,
y el módulo "documentation" que contiene los fuentes del sitio web.
Puedes tener una lista de los módulos disponibles con el comando:
> svn ls https://svn.aros.org/svn/aros/trunk/
Después de haber descargado los fuentes, podrías querer actualizarlos
periódicamente para tener los últimos cambios que los otros desarrolladores
han enviado. Para esto usa el comando "update":
> cd AROS
> svn update
Esto mezclará cualquier cambio que los otros desarrolladores hicieron en tus
fuentes y también buscará los directorios y archivos nuevos que se han
agregados. Si alguien envió cambios a un archivo que tu has cambiado
localmente, SVN intentará mezclar los cambios automáticamente. Si ambos cambiaron
los mismos renglones SVN podría fallar en mezclar los fuentes. Cuando esto
sucede, SVN se quejará y pondrá ambas versionea en el archivo separadas
por un <<<<. Necesitarás editar el archivo y resolver el conflicto a mano.
Advertencia
Porque SVN haya mezclado con éxito los cambios de los otros desarrolladores
con los tuyos no significa que todo esté bien. SVN solamente se encarga del
contenido textual; todavía podría haber conflictos lógicos después de la
mezcla (por ej. el otro desarrollador podría haber cambiado la semántica de
la misma función que usaste en tus cambios). Deberías siempre inspeccionar
los archivos que fueron mezclados y ver si todavía tienen sentido.
Si has hecho algunos cambios y sientes que quieres compartir tu trabajo con
los otros desarrolladores, deberías usar el comando "commit":
> svn commit
Puedes especificar una lista de los archivos para enviar; de otra manera
SVN revisará recursivamente el directorio actual y hallará todos los archivos
que has cambiado y los enviará.
Antes de enviar tus cambios al servidor para su incorporación, SVN te pedirá
que ingreses un mensaje de registro. Este mensaje de registro debería
contener una breve descripción de lo que has cambiado y en ciertos casos un
comentario para ellos. Los mensajes de registro bien escritos son muy importantes
porque pueden hacer mucho más fácil para los otros desarrolladores ver
rápidamente lo que hiciste y quizás el por qué. Los mensajes de registro son
reunidos y después enviados en un mensaje de correo diario a la lista de
correo de desarrollo para que todos puedan seguir a la par de los desarrollos
con el código base.
Antes de enviar tus cambios en un directorio, deberías hacer primero
una puesta al día ahí para ver si alguien más ha cambiado los archivos mientras
tú has estado trabajando en ellos. En caso de que eso suceda, necesitarás resolver
cualquier problema antes de hacer el envío. También asegúrate que has
probado tus cambios antes de enviarlos; al menos para que no rompan la compilación.
Para agregar archivos y directorios nuevos al depósito, usa el comando "add":
> svn add file.c
> svn add dir
SVN no revisará recursivamente de modo automático en los directorios agregados
recientemente y agregará los contenidos; tienes que hacerlo por tí mismo.
Después de haber agregado el archivo, necesitas usar el comando "commit"
para de verdad agregarlos al depósito.
Nota
No agregues los archivos generados (usualmente mmakefile, strings.h) al
depósito. De otro modo estos archivos no serán actualizados cuando el
archivo fuente se haya cambiado.
Los sistemas operativos difieren en los códigos que se usan para marcar el fin de
renglón. Para asegurarte que los archivos de texto que no son generados/modificados
en Linux tienen el correcto fin de renglón es necesario hacer:
svn propset svn:eol-style native <source.c>
Subversion puede substituir las palabras clave especiales en los archivos fuente.
Para habilitar esto necesitas hacer:
svn propset svn:keywords Author Date Id Revision <main.c>
Nota
Puedes configurar Subversion para que ponga automáticamente las propiedades
para ciertos tipos de archivo. Por favor consulta tu documentación de Subversion.
Cuando quieras agregar una gran colección de archivos, por ej. el código fuente
de algún software existente, "svn add" se vuelve rápidamente fastidioso. Para
esto deberías usar el comando "svn import". Desafortunadamente, la sección sobre
el comando import en el manual de SVN es muy pobremente escrito, dado el ejemplo:
Pon los archivos y los directorios que quieres importar en donde te guste,
mientras no sea en tu directorio de trabajo. Ejecuta el comando
"import" en el directorio situado dentro de una copia existente de SVN
que funcione puede llevar a resultados muy extraños, así que es mejor
evitarlo.
Cambia el directorio que contiene los archivos que deseas importar:
> cd name-1.2.3
Importa los archivos con el comando "svn import":
> svn import -m <logMessage> <destinationPath>
Esto importará recursivamente todos los archivos del directorio actual
y de los internos en el depósito, en la ruta de destino y con el mensaje de
registro que has especificado. En realidad, no todos los archivos serán
agregados: SVN ignorará los nombres de archivo que son comunes para respaldo
y los archivos ocultos, como #?.bak, .#? y #?~.
No obstante, deberías quitar todos los archivos que no quieres que
terminen en el depósito antes de que empiece la importación. No intentes
interrumpir SVN durante el import cuando veas que un archivo está siendo
agregado que no quiera. Sólo haz una nota y después borra el archivo.
Por ejemplo, digamos que quieres importar los fuentes de SVN 1.1.3
en el directorio "contrib/development/versioning/svn":
> cd subversion-1.1.3
> svn import -m "Initial import of SVN 1.11.12"
\ https://svn.aros.org/svn/aros/trunk/contrib/development/versioning/svn
Información más detallada sobre SVN se puede encontrar por supuesto en las páginas
del manual (man pages) y en los archivos distribuídos con el mismo SVN, y también
hay numerosos sitio que contienen tutoriales y guías útiles que podrían ser
más fáciles de leer.
Las siguientes páginas se recomiendan bastante:
|
|