Subversion, atributos y otros pensamientos

14:02 0 Comments

Durante las últimas tres semanas Rubén ha estado trabajando en el desarrollo del importador de Subversion. Será una de las nuevas características de la versión 2.0 que sacaremos en breve. Según parece, Plastic será una de las pocas herramientas que tengan un importador de subversion. Así que hemos estado peleandonos con problemas de memoria, rendimiento y algunas de las características de subversion que no terminan de coincidir con conceptos de Plastic. Con suerte estará terminado esta semana.


Los últimos dos días empezó a hacer pruebas de la implementación con grandes repositorios reales de subversion. No hace falta decir que al principio, mientras se trabajaba en el código, se hicieron pruebas con repositorios más pequeños. Así que tuvo algo de tiempo para retomar tareas pendientes del SPRINT anterior. Normalmente es preferible el realizar tareas largas que cortas, pero el poder cambiar a algo diferente mientras se hacía la importación de los repositorios grandes parecía divertido.


Estuvo implementando algunas mejoras del sistema de consultas. La semana pasada Borja terminó el soporte de los atributos así que ahora es el momento de sacarle todo el jugo posible a través de las consultas.
Así que ha modificado el sistema de consultas incluyendo la posibilidad de encontrar objetos asociados a un atributo concreto. Ahora se pueden realizar consultas como la siguiente:

$ cm find branch where attribute = 'status' and attrvalue = 'open'


Esta consulta resuelve una de las peticiones más demandadas por los clientes que es el listado de las ramas que aún no se han integrado siguiendo el patrón de rama por tarea.

Me recuerda al comando de "encontrar merges", que implementó hace un par de meses pero aún no se ha incluido en las últimas versiones.



$ cm find merge where srcbranch = 'br:/main/branch1' and dstbranch = 'br:/main'


Este muestra si hay merges desde la rama1 a la rama principal o no.

Otra característica muy útil utilizando los atributos es la de poder marcar ciertas revisiones con comentarios. No me refiero a un comentario de revisión normal sino a algo que se integra en la revisión, como por ejemplo que se revise posteriormente. Imagina que quieres que otro desarrollador revise un cambio que acabas de hacer, pero sabes que crearás nuevas revisiones y quieres que compruebe ese cambio específico. Se le podría adjuntar un nuevo atributo denominado "comentario" y darle el valor "comprobar".

$ cm mkatt remark

$ cm statt att:remark rev:src\server\dispacher.cs#br:/main/task001#3 "Must be reviewed"



Si ahora quieres buscar las revisiones que tengan este atributo



$ cm find revs where attribute = 'remark' and attrvalue like '%review%'

Y sacará las revisiones marcadas

Todas estas características estarán incluidas en plastic 2.0, que se lanzará dentro de muy poco...

0 comentarios: