[Mat7507f] [Tutorial] Utilizando Darcs

Margarita Manterola 7507 at marga.com.ar
Tue Sep 25 16:44:31 ART 2007


Este resumen está basado en un documento mucho más completo preparado por
chicos del LUGFI: http://lug.fi.uba.ar/documentos/scms/

¿Qué es Darcs?
==============

Darcs es un sistema de control de versiones, es decir que permite que
varias personas trabajen en un mismo proyecto de forma colaborativa.  Cada
integrante puede hacer modificaciones al código del proyecto que se guardan
en forma de "parches", de manera que lo único que se intercambian son las
modificaciones hechas al código base, y no _TODO_ el código.

Para poder trabajar con darcs, es necesario tener un "repositorio", el
repositorio es el lugar donde se almacena la información de los cambios que
se ha hecho al código.  

Comandos
========

Darcs es un programa que opera desde la línea de comandos.  A continuación
un resumen de los comandos básicos y sus funcionalidades:

* Creación inicial del repositorio:    $ darcs init 
* Agregar archivos o directorios:      $ darcs add archivo/s
* Guardar cambios realizados:          $ darcs record
* Listar los cambios realizados:       $ darcs changes
* Mostrar los cambios no guardados:    $ darcs diff -u
* Volver atrás un cambio:              $ darcs revert

Comandos para trabajar con repositorios publicados en la web:

* Obtener un repositorio publicado:    $ darcs get http://...
* Enviar los cambios realizados:       $ darcs send -o archivo http://...
* Actualizar un repositorio publicado: $ darcs pull http://...
* Aplicar un parche recibido por mail: $ darcs apply archivo

¿Cómo trabajar en grupo, con Darcs?
===================================

Hay varios modos de trabajar en grupo usando darcs.  A continuación, uno de
esos modos posibles.

La idea básica es que existe un repositorio que es el "oficial", el que se
va a presentar, y que está publicado en la web.  Habrá una persona que esté
a cargo de mantener ese repositorio, los demás le enviarán los parches,
según se explica a continuación.

Árbol de archivos (Caso Windows)
-----------------

*Algo3* (directorio básico de la materia - puede tener otro nombre)
  |
  \- *TP* (directorio del proyecto - puede llamarse como quieran)
  |    |
  |    \- darcs.exe (ejecutable de línea de comandos)
  |    \- *_darcs* (directorio donde se guarda la info de los cambios)
  |    \- ... (muchos archivos .java o .cs)
  |
  \- rsync.exe (sólo en el caso del que mantiene el repositorio)
  \- ssh.exe (sólo en el caso del que mantiene el repositorio)

Si usan GNU/Linux, no les hacen falta los .exe

Pasos para trabajar con un repositorio publicado
------------------------------------------------

*) Sólo la primera vez, hacer:
    $ darcs get http://... (URL del repositorio)

1) Antes de empezar a trabajar, SIEMPRE, hacer:
    $ darcs pull 
   
2) Modificar los archivos que sea necesario.  Si hace falta agregar algún
   archivo nuevo, hacer:
    $ darcs add archivo/s

3) A medida que se van realizando conjuntos de cambios, hacer:
	$ darcs record
   Esto pide confirmación para los cambios realizados y pide un nombre para
   el cambio a guardar, es importante darle nombres descriptivos.

4) Una vez terminado el trabajo del día:
    $ darcs send -o archivo 
   Esto guarda los cambios en un archivo.  Ese archivo se lo deben enviar
   por mail a la persona que mantiene el repositorio.

Pasos para mantener un repositorio publicado
--------------------------------------------

1*) La primera vez, dentro del directorio del proyecto, hacer:
   $ darcs init

2*) Para crear un directorio donde publicar los archivos, en el caso de
    utilizar el servidor de la facultad aleph:
   
   $ ssh usuario at aleph.fi.uba.ar

    Con esto se abre un conexión remota aleph, que les pide su clave.
	Dentro de aleph ejecutan:
   
   $ mkdir -p public_html/darcs

   (En caso en que utilicen otro servidor, todo esto se puede adaptar).

1) Cuando se reciban parches, guardarlos a un archivo y hacer:
   $ darcs apply archivo

2) Luego, se usa la siguiente línea de rsync para sincronizar los
   repositorios (caso aleph):
   
   $ rsync --rsh=ssh -vrzltP --delete MiProyecto usuario at aleph.fi.uba.ar:./public_html/darcs

   Sugerencia: guardar esta línea en un archivo .bat (o .sh en el caso de
   Linux), por ejemplo: update.bat, así no la tienen que escribir todas las
   veces.

   (Para este ejemplo, la URL con la que sincroniza el grupo es:
    http://web.fi.uba.ar/~usuario/darcs/MiProyecto )
  
Obtener los ejecutables
=======================

A continuación, las URLs de los ejecutables que les hacen falta.  No hace
falta instalarlos, los descomprimen según el árbol explicado más arriba.

Darcs
-----

Para obtener Darcs van a: http://wiki.darcs.net/DarcsWiki/CategoryBinaries donde
están las versiones para los distintos sistemas operativos.

Para Windows (incluye ssh): http://zooko.com/darcs/darcsdir-w32-1.0.9.zip

La versión para Linux viene en toda distribución que tenga menos de tres
años.

Rsync
-----

La versión para Windows:
http://optics.ph.unimelb.edu.au/help/rsync/binaries/rsync251-2.exe

La versión para Linux viene en absolutamente toda distribución (lo mismo
que el ssh).

Plugin de Darcs para Eclipse
----------------------------
http://www.eclipsedarcs.org

***

-- 
Besos,          ,''`.
       Marga   : :' :
               `. `' 
                 `-  


More information about the Mat7507f mailing list