SemanticMerge, una forma diferente de realizar los merges en nuestro repositorio

Los desarrolladores utilizamos de forma habitual, o al menos así debería ser en todos los casos, los repositorios de código para mantener un control cercano de las versiones y optimizar el trabajo en equipo.

Dichos repositorios permiten que un equipo trabaje sobre un mismo código, modificándolo, añadiendo o eliminando líneas, de forma simultánea. O, utilizando una política de branching, desarrollar líneas paralelas de una aplicación para tener la seguridad de tener siempre una versión funcional.

Sin embargo estas ventajas tienen un lado oscuro que a todo programador preocupa: los merge. El momento en que el trabajo de varias personas se debe "mezclar y ponerse de acuerdo para obtener una sola unida de código.

SemanticMerge,innovando en la gestión del codigo

Códice software es una compañía totálmente española que, cosa ya de por sí asombrosa en estos tiempos de "cárnicas", se dedica a realizar software de calidad. Así, entre sus productos estrella tiene el repositorio de código PlasticSCM y, con una preciosa página Web, acaban de hacer pública su beta del producto SemanticMerge.

Según la propia compañía, estamos ante una revolucionaría forma de realizar el Merge del código, gracias a la ayuda que ofrece la herramienta. Y que, además, funciona con los principales repositorios actuales, y ya están abordando el funcionar sobre los pocos que le faltan.

Pero el que mejor nos puede hablar sobre la empresa y este producto es uno de sus desarrolladores, Roberto Luis Bisbé. Un joven recién licenciado, con gran reconocimiento en la comunidad .NET, y que participa directamente en el desarrollo de SemanticMerge.

¿Por qué una herramienta para realizar merges de código? La idea de este proyecto viene de nuestra manera de trabajar internamente en Códice, empleamos una metodología denominada rama por tarea, con lo cual cada vez que se completa una tarea (y pasa sus correspondientes test) nuestro Release Manager la integra en la rama de producción. Como trabajamos de manera paralela, es frecuente que varios miembros del equipo modifiquen los mismos ficheros, generando conflictos.

Las herramientas actuales gestionan estos conflictos a nivel de línea, lo que las hace tremendamente versátiles y universales, pero carecemos de información de contexto, de tal manera que al realizar un merge, si un miembro del equipo ha movido un método, y otro ha realizado cambios, genera un conflicto manual que se podría haber resuelto de manera automática.

¿Qué es SemanticMerge? SemanticMerge es, en primer lugar, una herramienta de merge. Estas herramientas permiten, dados 3 ficheros (origen, destino y base) combinar los cambios que se han producido y dar como resultado un nuevo fichero. Se emplean continuamente en el contexto del control de versiones para mezclar o integrar ramas con cambios concurrentes.

¿Qué tiene de nuevo este merge? Es algo completamente diferente a lo visto hasta ahora, ya que es la primera herramienta comercial que permite analizar los cambios no a nivel de líneas, sino a un nivel más abstracto, viendo diferencias entre métodos, clases, propiedades o campos en un mismo fichero. Permite además convertir operaciones manuales (y muy costosas) en operaciones automáticas, como es el caso del refactor comentado anteriormente.

¿Se integra con Visual Studio? Al ser una herramienta de merge, se puede integrar con Team Foundation Server, y de hecho tenemos una guía disponible para ello en semanticmerge.com http://www.semanticmerge.com/

¿Y Eclipse, XCode o el resto de los IDE de desarrollo? Nosotros nos integramos a nivel de control de versiones, es decir, que Git, Mercurial, Perforce o ClearCase pueden cambiar su herramienta de merge por defecto a la nuestra. Respecto a plataformas en estos momentos solamente ofrecemos soporte para Windows, aunque las versiones de Mac y Linux están en nuestra hoja de ruta, y deberían estar disponibles pronto.

¿Tenéis pensado ofrecerlo On line, como servicio? Aunque se planteó originalmente como una herramienta en la nube, desde el punto de vista práctico y de rendimiento hemos optado por hacer aplicaciones de escritorio, de momento.

¿En qué lenguaje está realizada SemanticMerge? Todo nuestro desarrollo está hecho en C#, en .NET 4 y usando Visual Studio 2010 y 2012 como entornos. El apartado gráfico está hecho en WPF usando Blend como herramienta de diseño.

¿Es producto nacional 100%? Completamente, tanto a nivel de desarrollo como a nivel de negocio somos una empresa española, aunque estamos enfocados al mercado internacional, de ahí que el idioma principal a nivel interno o externo sea el inglés.

¿Por qué tenéis vuestras oficinas en Valladolid, cuando parece que todo se aglutina en las grandes capitales como Madrid o Barcelona? Dejando de lado la historia de la ciudad, que entre 1601 y 1606 fue capital del entonces Imperio Español, la razón fundamental es que Pablo, uno de nuestros fundadores, ya trabajaba en Valladolid antes de fundar la empresa. La situación de la ciudad, a tan solo 1h en AVE del centro de Madrid nos permite alejarnos un poco del “ruido” mientras que seguimos siendo una empresa competitiva y conectada, además, la mayor parte de nuestros ingenieros vienen de Valladolid o Burgos.

Muchas gracias a Roberto y a Códice Software por estas palabras y por el excelente producto que han sacado al mercado en formato beta pública (sin cargo) a la espera de la presentación de SemanticMerge en toda sus funcionalidad.

Para cerrar el artículo, señalar el exquisito diseño gráfico del producto, basado en la película de Ciencia Ficción de los años 50, “Ultimátum a la tierra”, y de donde se utiliza como logotipo la amenazante figura de Gort que transmite una enorme fuerza y conocimiento superior.

Más información | SemanticMerge Web, Códice Software Vía | Roberto Bísbe blog

Ver todos los comentarios en https://www.genbeta.com

VER 0 Comentario

Portada de Genbeta