En una instalación nueva de Cuis-Smalltalk, cada código que editas en el Browser del Sistema se registra en un Change Set.
Para examinar un //change set// (conjunto de cambios), utiliza la
herramienta denominada Change Sorter (clasificador de cambios):
... Menú World (Mundo) → Changes...
(Cambios...) → Change Sorter... (Clasificador de
cambios...)
Figura 9.3: El Change Sorter, edición de clase
La clase TheBook que añadimos a Cuis-Smalltalk en la sección anterior
es un cambio realizado en el núcleo del sistema. De forma
predeterminada, se registra en un conjunto de cambios creado
automáticamente por el sistema. En Figura 9.3 en la parte
superior derecha, observa la clase TheBook, que pertenece a un
conjunto de cambios denominados
4439-CuisCore-AuthorName-2020Nov16-13h40m. En el panel
izquierdo, cada conjunto de cambios no guardado está marcado con una
---> . Aquí nos indica que el cambio no se ha guardado en el
disco. Para guardar el conjunto de cambios, basta con utilizar su menú
contextual y seleccionar una de las entradas file out. El
conjunto de cambios se guardará junto con la imagen de Cuis-Smalltalk bajo su
nombre de sistema, sustituyendo AuthorName por el nombre real
del autor.
Figura 9.4: El Change Sorter, editar método
Fíjate en la Figura 9.4, después de añadir el método
pages a la clase TheBook, el panel central muestra los
métodos añadidos o modificados. Cuando se selecciona un método, su
código fuente se muestra en el panel inferior.
Supongamos que guardamos el conjunto de cambios: entradas File out en el menú de la herramienta de clasificación de cambios. Esto
crea un nuevo archivo 4451-CuisCore-HilaireFernandes-2020Nov14-21h08m-hlsf.001.cs.st junto
al archivo de imagen Cuis-Smalltalk:
From Cuis 5.0 [latest update: #4450] on 18 November 2020 at 9:05:09 am'! !classDefinition: #TheBook category: 'TheCuisBook'! Object subclass: #TheBook instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'TheCuisBook'! !TheBook methodsFor: 'as yet unclassified' stamp: 'hlsf 11/18/2020 09:04:58'! pages ^ 151! !
Ejemplo 9.1: Contenidos de Change set
Para cargar este conjunto de cambios en una nueva imagen, utilice la
herramienta File List (Lista de archivos)...Menú World (Mundo)
→ Open (Abrir) → File List... (Lista de
archivos...) Busca la carpeta que contiene el archivo del conjunto de
cambios que deseas cargar y selecciónalo. A partir de ahí, tienes tres
opciones para manipularlo.
Figura 9.5: La herramienta File List, para instalar un conjunto de cambios y más
code. Abre una especie de Browser del Sistema limitado
al código del archivo del conjunto de cambios. Es una herramienta muy
útil para leer y aprender el código del conjunto de cambios.
contents. Se abre una herramienta denominada Change
List (Lista de cambios) para revisar las modificaciones que este
conjunto de cambios producirá en la imagen una vez instalado. También
te permite seleccionar los cambios individuales que deseas instalar y
descartar. Cada línea que seleccionas representa una clase o una
adición/modificación de método. Una vez seleccionado el código que
deseas instalar, pulsa el botón file in selections (archivo en
selecciones) para continuar con la instalación.
Supongamos que un compañero desarrollador modifica la clase
TheBook, añade una variable de instancia pages y
ajusta los métodos pages en consecuencia. Guarda los cambios
y comparte el archivo contigo. Fíjate en la Figura 9.6 para
ver cómo revisarás sus cambios con la herramienta Change
List. Nuestro código que se eliminará de la imagen se muestra con
trazos rojos, y su código que se instalará se muestra en verde.
Figura 9.6: La herramienta Change List para revisar las modificaciones realizadas en la imagen
install. Simplemente instala el conjunto completo de
cambios sin interactividad.
Los desarrolladores de Cuis-Smalltalk utilizan el método de gestión del código fuente basado en conjuntos de cambios para trabajar en su imagen central. Cuando se desea escribir una aplicación, una herramienta específica o incluso un conjunto de clases que abarquen un dominio concreto, lo ideal es utilizar otra cosa para gestionar el código: un paquete.