Actualizacion de fuentes =)

2 views
Skip to first unread message

Dario Rodriguez

unread,
Dec 29, 2011, 9:50:02 PM12/29/11
to safa-developers
Bien, para esta subida hice algunas modificaciónes... varias

Podrán hacer el flujo completo de init, add, commit, y funciona todo.
Los blobs se copian al repositorio, los commits verifican otro
anterior y setean el PARENT correctamente.

Ahora mismo estoy trabajando en el rev walker, el que recorre los
commits para atrás. Otro podría trabajar en el "export", que es el que
toma un TREE, copia los blobs a un directorio temporal reproduciendo
las rutas, asigna los permisos que estan en el TREE, y comprime el
directorio, de forma que se obtiene un tarball instantaneo.

Otras funcionalidades que pueden tomar son el checkout, el patch-gen,
para crear los parches desde un commit a otro. Y obviamente, el diseño
y creacion de una utilidad para actualizar via web, bajando objetos...
y el fsck, que por ahora no va a hacer mas que checkear corrupción en
los archivos mediante sus SHA-1

Recuerden que cada uno es libre de presentar su trabajo, lo mejor
posible y en forma de parches, para que los demas lo vean, propongan
formas mejores, lo propongan como opcional, etc...

Saludos
--
Dario

Nicolas Palumbo

unread,
Dec 31, 2011, 1:00:32 PM12/31/11
to safa-de...@googlegroups.com
Pego una guia rapida de lo que se puede hacer de momento:

[hay q tener la configuracion para poder hacer el safa-init]
nico@MSIS300:~$ cat .safa-dcs/config
user.name=napalumbo

creamos un directorio para probar:

nico@MSIS300:~$ mkdir safa-playground
nico@MSIS300:~$ cd safa-playground

[Modificamos la variable PATH para poder encontrar los comandos de safa]
nico@MSIS300:~/safa-playground$ PATH=$PATH:/home/nico/Downloads/safa

[inicializamos un repo]
nico@MSIS300:~/safa-playground$ safa-init

[creamos un archivo]
nico@MSIS300:~/safa-playground$ touch a

[lo agregamos al control de versiones]
nico@MSIS300:~/safa-playground$ safa-add a


nico@MSIS300:~/safa-playground$ safa-commit
en el comentario puse commit incial

Nos fijamos donde apunta HEAD:
nico@MSIS300:~/safa-playground$ safa-resolve-ref HEAD
3b85d9f73825fcb59dcb182a069c52148bfe0cd3

EDITO EL ARCHIVO a y agrego la palabra cambio

Se da cuenta que el archivo es distinto con respecto a contenido,
ls.pl no funciona en diff-from-tree ***

nico@MSIS300:~/safa-playground$ safa-diff-from-tree
3b85d9f73825fcb59dcb182a069c52148bfe0cd3 a
/home/nico/Downloads/safa/safa-diff-from-tree: line 112: ./ls.pl: No
such file or directory
%safa-diff%BEGIN
%safa-diff%diff-from-tree
3b85d9f73825fcb59dcb182a069c52148bfe0cd3 a
0a1
> cambio
%safa-diff%content-result NOT-EQUAL
%safa-diff%END

[hay que hacer el safa-add ya que safa permite hacer commits vacios
para poner comentarios]
nico@MSIS300:~/safa-playground$ safa-add a
M a

1 files changed


AHORA COMMIT nos dice el parent tree:
nico@MSIS300:~/safa-playground$ safa-commit
parent_tree[0]==>[ 3b85d9f73825fcb59dcb182a069c52148bfe0cd3 ]

El HEAD apunta al nuevo TREE:
nico@MSIS300:~/safa-playground$ safa-resolve-ref HEAD
bb815e948554cdf8eda779474f6baee40664d1d7

*** en safa-diff-from-tree habria que eliminar el ./ que precede a ls.pl

En 15 dias aprox. estare tomando una nueva tarea de las disponibles al momento.

Saludos y buen fin de año y comienzo del proximo para todos,
Nico

Dario Rodriguez

unread,
Jan 2, 2012, 6:59:12 AM1/2/12
to safa-de...@googlegroups.com, Nicolas Palumbo
Hola, y Feliz 2012 para todos!!

diff-from-tree está desactualizado de momento. En realidad debería guardar parches diff -uN (unified diff)

Por otro lado, comentas que se pueden hacer commits vacíos, pero no se debería poder hacer, para eso crearemos los tags. Lo que se debería poder hacer:

~/safa-sandbox $ safa-init
SAFA - starting empty repo
importing config...
remember, you need to tell SAFA what do you want to keep versioned
~/safa-sandbox $ echo "hola" > archivo
~/safa-sandbox $ safa-add archivo
 A archivo

1 files changed

# la 'A' nos dice que se agregó
# un archivo que no existia en el TREE anterior
~/safa-sandbox $ safa-commit -t "un titulo"
# ... se le pone un comentario ...
~/safa-sandbox $ echo "otra linea" >> archivo
~/safa-sandbox $ safa-add archivo
 M archivo

1 files changed

# aca la 'M' dice que se modificó
# un archivo existente
# si intentamos agregar de nuevo...
~/safa-sandbox $ safa-add archivo

0 files changed


Pero lamentablemente vi que deja hacer un commit vacío antes de arrojar el error:

~/safa-sandbox $ safa-commit -t hola
parent_tree[0]==>[ 04bfea116218f736bd1c8ab6d6050f271a5ee00c ]
commit already exists at ~/safa-dario/safa-commit line 133.

Ya se corregirá luego... Para cualquiera que se quiera familiarizar, los objetos de safa son simplemente archivos de texto, así que es fácil entender las relaciónes:

Esto nos da el SHA-1 del commit más nuevo:

~/safa-sandbox $ safa-resolve-ref HEAD
b0519d514655455d1199c858a877cd413df64c27

Entonces...

~/safa-sandbox $ safa-cat-tree $(safa-resolve-ref HEAD)
TYPE:TREE

0644    archivo    3b400c2732a54caeceaf5d5da6590e850a56bf60

la resolución de referencias puede ser mejorada, porque verán que es muy útil...

~/safa-sandbox $ cat .safa/commits/$(safa-resolve-ref HEAD)
PARENT:a60eaefd91fe04dd5290188edb1eac23503330cc
PATCH:null
TREE:b0519d514655455d1199c858a877cd413df64c27
AUTHOR:Dario A Rodriguez    31/Dec/2011 19:45:20 -0300
ABSTRACTION:null
CURRLEVEL:0
TITLE:untitled

write your commit message here, with no title (replace this text)

Vamos al parent:

~/safa-sandbox $ cat .safa/commits/a60eaefd91fe04dd5290188edb1eac23503330cc
PARENT:null
PATCH:null
TREE:a60eaefd91fe04dd5290188edb1eac23503330cc
AUTHOR:Dario A Rodriguez    31/Dec/2011 19:39:40 -0300
ABSTRACTION:null
CURRLEVEL:0
TITLE:un titulo

Un commit

Cuando termine el Rev Walker (supongo que hoy) quedaría hacer el comando 'log' y el 'checkout', ambos muy importantes. El borrador de esos comandos, a mi parecer, debería estar en Perl o Python. No se si bash sea adecuado para algo tan importante en el flujo.

Saludos!
Dario

Osvaldo Falabella

unread,
Jan 2, 2012, 12:26:02 PM1/2/12
to safa-de...@googlegroups.com, Nicolas Palumbo

Iguales deseos!

--
--------------------
Recibes esto porque estas suscrito a "safa-dcs" en GoogleGroups.
Puedes enviar correo a: safa...@googlegroups.com
Para desuscribirte, envia un correo a: safa-dcs+u...@googlegroups.com
Mas info: http://groups.google.com/group/safa-dcs
S.A.F.A. - More than just version controlling
Reply all
Reply to author
Forward
0 new messages