20.07.2013 Views

Tesis Estudio Empírico de prácticas de desarrollo de software en ...

Tesis Estudio Empírico de prácticas de desarrollo de software en ...

Tesis Estudio Empírico de prácticas de desarrollo de software en ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

equiere conexión a dicho repositorio. En un sistema distribuido, el <strong>de</strong>sarrollador<br />

ti<strong>en</strong>e la libertad <strong>de</strong> realizar todos los cambios y commits que estime<br />

pertin<strong>en</strong>te; y <strong>en</strong> cualquier mom<strong>en</strong>to posterior podría <strong>en</strong>viar sus cambios o<br />

bi<strong>en</strong> recibir otros (update, fetch o pull).<br />

revisión (cambio, conjuntos <strong>de</strong> cambios, changeset). Una revisión usualm<strong>en</strong>te<br />

es una i<strong>de</strong>ntificación <strong>de</strong> uno o más archivos o directorios <strong>en</strong> un instante<br />

<strong>de</strong>l tiempo. Algunos sistemas pue<strong>de</strong>n utilizar los términos revisión, change<br />

(cambio), o bi<strong>en</strong> changeset para referirse precisam<strong>en</strong>te al conjunto <strong>de</strong><br />

cambios comprometidos (commit) como una sola unidad conceptual <strong>en</strong> el<br />

repositorio. Dep<strong>en</strong>di<strong>en</strong>do <strong>de</strong> los sistemas <strong>de</strong> control <strong>de</strong> versiones pue<strong>de</strong>n t<strong>en</strong>er<br />

significados técnicos distintos, pero la i<strong>de</strong>a g<strong>en</strong>eral es la misma. Es una<br />

forma <strong>de</strong> po<strong>de</strong>r i<strong>de</strong>ntificar <strong>en</strong> forma precisa ciertos puntos <strong>en</strong> el tiempo <strong>de</strong> la<br />

historia <strong>de</strong> un archivo o un conjunto <strong>de</strong> éstos.<br />

diff (difer<strong>en</strong>cias). Es una forma <strong>de</strong> comparación que busca, por una parte,<br />

minimizar el espacio necesario para <strong>de</strong>scribir difer<strong>en</strong>cias y, por otra, po<strong>de</strong>r<br />

mostrar esas difer<strong>en</strong>cias haci<strong>en</strong>do más compr<strong>en</strong>sibles los cambios <strong>en</strong>tre instancias<br />

o versiones <strong>de</strong> archivo <strong>de</strong> orig<strong>en</strong> común. Se podría <strong>en</strong>t<strong>en</strong><strong>de</strong>r, a<strong>de</strong>más<br />

<strong>de</strong> lo <strong>de</strong>scrito, como una secu<strong>en</strong>cia lo más corta posible <strong>de</strong> operaciones (g<strong>en</strong>eralm<strong>en</strong>te<br />

sobre texto, pero <strong>en</strong> algunos casos sobre cont<strong>en</strong>ido binario) que<br />

si se aplicaran sobre una instancia/versión <strong>de</strong> un archivo o fragm<strong>en</strong>to g<strong>en</strong>erarían<br />

la otra instancia/versión con la que se está comparando.<br />

tag (etiqueta). Es un i<strong>de</strong>ntificador arbitrario <strong>de</strong>l proyecto <strong>en</strong> una revisión<br />

especifica. Se utilizan normalm<strong>en</strong>te para marcar hitos <strong>en</strong> un proyecto, y que<br />

a su vez, sea fácil <strong>de</strong> recordar y/o asociar por las personas. Un práctica común<br />

<strong>de</strong> etiquetado se produce cuando un proyecto <strong>en</strong>trega una nueva versión al<br />

público o cuando éste ha alcanzado un hito importante, etiquetando dicha<br />

revisión con un nombre simbólico, por ejemplo, GNOME_1_0. En sistemas<br />

mo<strong>de</strong>rnos, como git, Mercurial o Subversion 30 , una etiqueta se asocia a una<br />

revisión (changeset); <strong>en</strong> sistemas más antiguos, como CVS, una etiqueta se<br />

aplica a nivel <strong>de</strong> archivos, lo cual es mucho más flexible pero también más<br />

complejo y <strong>en</strong> su forma más simple, se pue<strong>de</strong> obt<strong>en</strong>er el mismo efecto que<br />

<strong>en</strong> git o Mercurial si se etiquetan todos los archivos simultáneam<strong>en</strong>te.<br />

branch (rama). Las ramas también son conocidas como líneas <strong>de</strong> <strong>de</strong>sarrollo.<br />

Una rama correspon<strong>de</strong> a una copia <strong>de</strong>l proyecto que se manti<strong>en</strong>e bajo el<br />

sistema <strong>de</strong> control <strong>de</strong> versiones, pero cuyos cambios no afectan la línea <strong>de</strong><br />

<strong>de</strong>sarrollo principal <strong>de</strong>l proyecto (u otras ramas) y viceversa; exceptuando<br />

30 Estos difier<strong>en</strong> <strong>en</strong> los <strong>de</strong>talles <strong>de</strong> implem<strong>en</strong>tación.<br />

18

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!