Mostrando entradas con la etiqueta PlasticSCM. Mostrar todas las entradas
Mostrando entradas con la etiqueta PlasticSCM. Mostrar todas las entradas

sábado, enero 13, 2018

PlasticSCM: Cambiar la ubicación del Repositorio

(Publicado originalmente por Carton Jeston en el foro Google de la Comunidad Visual FoxPro)
https://groups.google.com/d/msg/publicesvfoxpro/faUPGOBsdBs/kfg7jBtmBAAJ

---

Después de instalar plasticscm en su carpeta por defecto (c:\Program Files\PlasticSCM5\) los repositorios se guardan dentro de la subcarpeta SERVER.  No me parece una gran idea tener datos importantes en la misma partición de windows y necesito, por motivos de seguridad y para facilitar el backup, que estén separados y en otra ubicación.

Lo primero es salir del plasticscm y asegurar que no hay ningún servicio dependiente o archivo abierto y hacer una copia de seguridad de toda la carpeta PlasticSCM5 por si fallara algo.

Para este ejemplo, teniendo una unidad/particion D: para los datos importantes, creare una carpeta llamada PLASTIC en el disco D: (D:\PLASTIC) que es la nueva ubicación donde se guardaran los repositorios. Recomiendo usar siempre minúsculas aunque Windows no se vea afectado por ello.

Dentro de la subcarpeta SERVER hay un archivo de texto llamado DB.CONF, que si se instala por defecto con la base de datos SQLITE deberá tener esta información:


<DbConfig>
 
<ProviderName>sqlite</ProviderName>
 
<ConnectionString>Data Source={0};Synchronous=FULL;Journal Mode=WAL;Pooling=true</ConnectionString>
 
<DatabasePath></DatabasePath>
</DbConfig>

Y entre <DatabasePath>d:\plastic</DatabasePath> insertamos la ubicación de la carpeta que hemos creado antes, recordando que mejor en minúsculas, quedando así:



<DbConfig>
 
<ProviderName>sqlite</ProviderName>
 
<ConnectionString>Data Source={0};Synchronous=FULL;Journal Mode=WAL;Pooling=true</ConnectionString>
 
<DatabasePath>d:\plastic</DatabasePath>
</DbConfig>

Ahora guardamos los cambios el archivo que hemos editado DB.CONF.

Como hemos observado anteriormente, las bases de datos que empleaba plasticscm era SQLITE, así que buscamos en la misma carpeta SERVER todos los archivos con extensión .SQLITE y tendrás algo así:

repositories.plastic.sqlite
rep_1.sqlite
rep_2.sqlite
etc.


Ahora hay que moverlos todos a la nueva carpeta que creamos (D:\PLASTIC) y si todo ha ido bien, al abrir plasticscm apuntara a los repositorios guardados en esta ubicación.

Ya está.

En mi caso, cuando hago una versión nueva final de mi aplicación, hago la copia del workspace (donde esta nuestro proyecto, formularios, prg,etc) que tengo en esa unidad de datos y ahora ademas hago la copia de los repositorios para salvaguardar también la base de datos de los cambios de la versión de la aplicación. No hay que olvidar que un mal paso, un virus o una rotura de disco duro y siempre hay que tener copia de seguridad.



¿Como parar/reanudar el servicio de plastic para hacer un backup/restore de los repositorios?

Como he comentado arriba, conviene para el servicio de plasticscm antes de hacer un backup y sobre todo, al restaurar copiando nuestros repositorios puede dar errores.

Te darás cuenta que en la carpeta de los repositorios en algún momento habrán dos archivos con el nombre de un repositorio y con la extensión .sqlite-shm y .sqlite-wal y es porque plasticscm esta haciendo algún trabajo en segundo plano.

Para evitar conflictos, lo mejor es parar el servicio y que termine lo que esta haciendo y después hacer nuestras copias de los repositorios sin ningún problema.

Pulsar Ctrl+Alt+Supr y elegir la opción "Iniciar administrador de tareas". Pulsar en la pestaña Servicios, buscar el nombre PLASTIC SERVER 5 y pulsas con el botón derecho del ratón. Ahora elegir Detener servicio, hacer nuestras copias o restaurarlas en cuanto desaparezcan los dos archivos mencionados arriba y al terminar, botón derecho de nuevo sobre el servicio y elegir Iniciar servicio.

También puedes acceder a los Servicios a través del Panel de control de Windows, Herramientas administrativas y elegir Servicios.

Otro metodo alternativo mediante la consola de comandos del sistema (ejecutar-cmd) o automatizar mediante un archivo BAT o similar o bien acceso directo:

net start "plastic server 5"    >>> inicia el servicio     
                                                            
net stop  "plastic server 5"    >>> detiene el servicio    

[N.del E.] o también:

sc \\localhost start "plastic server 5"                      
                                                             
sc \\localhost stop  "plastic server 5"                      




Particularmente me gusta mucho este método por su automatización y porque te indica cuando ha terminado la operación correctamente y seguro para un proceso desatendido. Tener en cuenta de probarlo por primera vez manualmente y ver que el nombre del servicio no ha cambiado, actualmente es la versión plasticSCM 5.



Número del archivo de base de datos de Plastic

Para poder saber qué workspace tenemos en qué repositorio (BDD), debemos usar el comando cm desde la consola de Windows, con este parámetro:


cm lrep --format="TABLE"                                      

Que en mi caso deja una salida como esta:

 1 default localhost:8087                                     
 2 dvcs_vfp9 localhost:8087                                   
 5 foxpro_diff_merge localhost:8087                           
 6 filename_caps localhost:8087                               


Donde la primera columna contiene el número de repositorio, la segunda el nombre del workspace y la tercera la máquina:puerto donde apunta.

Si se está usando la nomenclatura de repositorio por defecto ( osea que no se ha cambiado) y se usa SQLite, entonces  el nombre del repositorio es de la forma:

rep_NN.plastic.sqlite

Y aplicando el número obtenido a la nomenclatura, se puede ver que el nombre de BDD del repositorio que contiene el workspace  dvcs_vfp9, será:

rep_2.plastic.sqlite


Nota: Para que el comando cm funcione sin tener que indicar la ruta cada vez, es buena idea agregar la ruta "c:\Program Files\PlasticSCM5\client" al PATH de Windows.



Hasta la próxima! :D

Artículos relacionados:
PlasticSCM: Opciones de conectividad, transporte del código fuente y backup
PlasticSCM: Cómo configurar la replicación de repositorios Plastic locales y remotos


domingo, noviembre 12, 2017

Plastic SCM: Índice de videos de YouTube con algunas operaciones comunes

El presente post es para tener un índice con los videos que fui haciendo sobre el uso de Plastic SCM con Visual FoxPro 9.


PlasticSCM: Como cambiar el tipo de archivo a texto



PlasticSCM: Cómo cancelar un merge en proceso


PlasticSCM: Resolución manual de conflictos en FoxPro 9



PlasticSCM: Deshacer un changeset con merge sustractivo en FoxPro 9

FoxPro 9: Deshacer un merge de dos ramas en PlasticSCM



FoxPro 9: Merge en PlasticSCM de dos ramas con un directorio duplicado

Modificación en FoxPro 9 y checkin en PlasticSCM


Merge de 2 ramas y resolución de conflictos (directorio repetido)



PlasticSCM: Merge con Visual FoxPro 9

PlasticSCM: Merge con Visual FoxPro 9 - video 2





Hasta la próxima! :D


miércoles, agosto 31, 2016

Referencia: Temas y Artículos Agrupados - Para no perderse en el blog

Este post pretende poner un poco de orden en el caos de artículos y temas tratados que pasado un tiempo se hacen algo difíciles de encontrar, a modo de resumen y temas relacionados, para poder, en los casos que corresponda, tener los artículos ordenados desde el inicio hacia los temas más avanzados.

Inicialmente lo aplicaré a los artículos de Plastic, ya luego iré agregando otros donde ese orden sea beneficioso para el seguimiento del tema tratado.

Recordar que al final de los artículos, suelo poner links relacionados al tema.




Visual FoxPro 9

Cómo mover una tabla de una Base de Datos a otra

Cómo trabaja FoxPro internamente (traducción)

Control de versiones: ¿para qué sirve? ¿por qué es necesario?

Guía de buenas prácticas de programación y recomendaciones

La importancia de un buen nombre para los procedimientos y las funciones

La Interfaz, las reglas de negocio y los datos - Cómo separarlos y por qué

Los peligros de SET COLLATE

Selección de artículos y notas sobre problemas y troubleshoting para tener a mano

Seleccionar palabras de un textbox con solo un click

Técnicas de optimización en VFP: Tablas, archivos de texto, accesos al disco y buffering

Técnicas de programación en VFP: Procesos desatendidos y control de progreso visual

Unit Testing: Qué es y cómo se usa en VFP 9

Whitepaper: Cacheo de lectura y bloqueo oportunista en redes Microsoft Windows



Varios

Cómo configurar las notificaciones de Google de forma óptima

(Linux) Ubuntu 16.04: Agregando soporte para nuevo hardware (kernel)



PlasticSCM y FoxBin2Prg

PlasticSCM: Cómo trabajar en FoxPro 9 con ramas por tarea

Control de código fuente: Terminología común que hay que conocer

FoxBin2Prg: Control de código fuente con PlasticSCM

FoxBin2Prg: Detalle de vistas, datos de uso, configuraciones y más

FoxBin2Prg: Guía rápida de uso y configuración

Instalación de PlasticSCM paso a paso

PlasticSCM: Cómo configurar el usuario Administrador del Servidor

PlasticSCM: Cómo crear una rama para comenzar a trabajar

FoxPro 9: Creando un componente y agregándolo al control de código PlasticSCM

FoxPro 9: Modificando un componente que ya está bajo control de código

PlasticSCM: Hice un checkin erróneo de un archivo nuevo, ¿cómo lo arreglo?

PlasticSCM: ¿Qué es el Diff?

PlasticSCM: ¿Para qué sirve el Annotate?

FoxPro 9 y PlasticSCM: Cómo deshacer un changeset sin borrarlo

PlasticSCM: ¿Qué es el Merge?

PlasticSCM: ¿Qué es el Shelve?

PlasticSCM: Opciones de búsqueda y visualización de ramas y changesets

PlasticSCM: El merge sustractivo como reemplazo del borrado

PlasticSCM: Qué es el Cherry Pick y cómo se usa 

PlasticSCM: ¿Qué es nivelar una rama?

PlasticSCM: Cómo configurar la replicación de repositorios Plastic locales y remotos

PlasticSCM: Cambiar la ubicación del Repositorio

Plastic SCM: Índice de videos de YouTube con algunas operaciones comunes


domingo, mayo 31, 2015

Nueva versión v2.5.11 de las herramientas Visual FoxPro 9 para PlasticSCM (Incluye FoxBin2Prg.exe v1.19.44)


Estas herramientas son un grupo de scripts vbs y programas Visual FoxPro 9 que se configuran dentro de PlasticSCM (herramienta de control de versiones) para poder invocar a FoxBin2Prg (incluye solo el EXE) desde dentro de la interfaz de Plastic.


Está liberada la versión v2.5.11 de las herramientas Visual FoxPro 9 para PlasticSCM, con los siguientes cambios:

  • Actualizados los scripts para usar la nueva propiedad l_Errors de FoxBin2Prg para conultar errores de sesión.




El README.txt explica como se configura en Inglés y Español, y también está explicado en esta nota: Cómo configurar las Herramientas de VFP 9 para Plastic


Nota: Los fuentes del proyecto FoxBin2Prg y el historial de ambios, están en CodePlex, en este link.


Como actualizar las existentes:
Con descargarlas y reemplazar los archivos en el sitio que los hayan puesto antes es suficiente.


Link de descarga de GitHub:
https://github.com/fdbozzo/plasticscm-tools-for-visual-foxpro-9


Saludos!

domingo, mayo 10, 2015

Nueva versión v2.5.10 de las herramientas Visual FoxPro 9 para PlasticSCM (Incluye FoxBin2Prg.exe v1.19.43)


Estas herramientas son un grupo de scripts vbs y programas Visual FoxPro 9 que se configuran dentro de PlasticSCM (herramienta de control de versiones) para poder invocar a FoxBin2Prg (incluye solo el EXE) desde dentro de la interfaz de Plastic.


Está liberada la versión v2.5.10 de las herramientas Visual FoxPro 9 para PlasticSCM, con los siguientes cambios:






El README.txt explica como se configura en Inglés y Español, y también está explicado en esta nota: Cómo configurar las Herramientas de VFP 9 para Plastic


Nota: Los fuentes del proyecto FoxBin2Prg y el historial de ambios, están en CodePlex, en este link.


Como actualizar las existentes:
Con descargarlas y reemplazar los archivos en el sitio que los hayan puesto antes es suficiente.


Link de descarga de GitHub:
https://github.com/fdbozzo/plasticscm-tools-for-visual-foxpro-9


Saludos!

sábado, abril 18, 2015

Nueva versión v2.5.9 de las herramientas Visual FoxPro 9 para PlasticSCM (Incluye FoxBin2Prg.exe v1.19.42)


Estas herramientas son un grupo de scripts vbs y programas Visual FoxPro 9 que se configuran dentro de PlasticSCM (herramienta de control de versiones) para poder invocar a FoxBin2Prg (incluye solo el EXE) desde dentro de la interfaz de Plastic.


Está liberada la versión v2.5.9 de las herramientas Visual FoxPro 9 para PlasticSCM, con los siguientes cambios:

  • Actualizada la versión de FoxBin2Prg (solo el EXE) a la versión v1.19.42 
  • Adaptados los scripts vbs y exe a la nueva versión de FoxBin




El README.txt explica como se configura en Inglés y Español, y también está explicado en esta nota: Cómo configurar las Herramientas de VFP 9 para Plastic


Nota: Los fuentes del proyecto FoxBin2Prg y el historial de ambios, están en CodePlex, en este link.


Como actualizar las existentes:
Con descargarlas y reemplazar los archivos en el sitio que los hayan puesto antes es suficiente.


Link de descarga de GitHub:
https://github.com/fdbozzo/plasticscm-tools-for-visual-foxpro-9


Saludos!

domingo, enero 18, 2015

Nueva versión v2.5.7 de las herramientas Visual FoxPro 9 para PlasticSCM (Incluye FoxBin2Prg.exe v1.19.41)


Estas herramientas son un grupo de scripts vbs y programas Visual FoxPro 9 que se configuran dentro de PlasticSCM (herramienta de control de versiones) para poder invocar a FoxBin2Prg (incluye solo el EXE) desde dentro de la interfaz de Plastic.


Está liberada la versión v2.5.7 de las herramientas Visual FoxPro 9 para PlasticSCM, con los siguientes cambios:





El README.txt explica como se configura en Inglés y Español, y también está explicado en esta nota: Cómo configurar las Herramientas de VFP 9 para Plastic


Nota: Los fuentes del proyecto FoxBin2Prg y el historial de ambios, están en CodePlex, en este link.


Como actualizar las existentes:
Con descargarlas y reemplazar los archivos en el sitio que los hayan puesto antes es suficiente.


Link de descarga:
https://github.com/fdbozzo/foxpro_plastic_diff_merge


Saludos!

domingo, enero 11, 2015

Nueva versión v2.5.6 de las herramientas Visual FoxPro 9 para PlasticSCM (Incluye FoxBin2Prg.exe v1.19.40)


Estas herramientas son un grupo de scripts vbs y programas Visual FoxPro 9 que se configuran dentro de PlasticSCM (herramienta de control de versiones) para poder invocar a FoxBin2Prg (incluye solo el EXE) desde dentro de la interfaz de Plastic.


Está liberada la versión v2.5.6 de las herramientas Visual FoxPro 9 para PlasticSCM, con los siguientes cambios:





El README.txt explica como se configura en Inglés y Español, y también está explicado en esta nota: Cómo configurar las Herramientas de VFP 9 para Plastic


Nota: Los fuentes del proyecto FoxBin2Prg y el historial de ambios, están en CodePlex, en este link.


Como actualizar las existentes:
Con descargarlas y reemplazar los archivos en el sitio que los hayan puesto antes es suficiente.


Link de descarga:
https://github.com/fdbozzo/foxpro_plastic_diff_merge


Saludos!

jueves, enero 01, 2015

Nueva versión v2.5.5 de las herramientas Visual FoxPro 9 para PlasticSCM (Incluye FoxBin2Prg.exe v1.19.39)


Estas herramientas son un grupo de scripts vbs y programas Visual FoxPro 9 que se configuran dentro de PlasticSCM para poder invocar a FoxBin2Prg (incluye solo el EXE) desde dentro de la interfaz de Plastic.


Está liberada la versión v2.5.5 de las herramientas Visual FoxPro 9 para PlasticSCM, con los siguientes cambios:

  • Actualizada la versión de FoxBin2Prg (solo el EXE) a la versión v1.19.39
  • Actualizados los scripts vbs para mostrar los errores del proceso a pantalla completa




El README.txt explica como se configura en Inglés y Español, y también está explicado en esta nota: Cómo configurar las Herramientas de VFP 9 para Plastic


Nota: Los fuentes del proyecto FoxBin2Prg y el historial de ambios, están en CodePlex, en este link.


Como actualizar las existentes:
Con descargarlas y reemplazar los archivos en el sitio que los hayan puesto antes es suficiente.


Link de descarga:
https://github.com/fdbozzo/foxpro_plastic_diff_merge


Saludos!

domingo, diciembre 14, 2014

Nueva versión v2.5.4 de las herramientas Visual FoxPro 9 para PlasticSCM (Incluye FoxBin2Prg.exe v1.19.38)


Estas herramientas son un grupo de scripts vbs y programas Visual FoxPro 9 que se configuran dentro de PlasticSCM para poder invocar a FoxBin2Prg (incluye solo el EXE) desde dentro de la interfaz de Plastic.


Está liberada la versión v2.5.4 de las herramientas Visual FoxPro 9 para PlasticSCM, con los siguientes cambios:





El README.txt explica como se configura en Inglés y Español, y también está explicado en esta nota: Cómo configurar las Herramientas de VFP 9 para Plastic


Nota: Los fuentes del proyecto FoxBin2Prg y el historial de ambios, están en CodePlex, en este link.


Como actualizar las existentes:
Con descargarlas y reemplazar los archivos en el sitio que los hayan puesto antes es suficiente.


Link de descarga:
https://github.com/fdbozzo/foxpro_plastic_diff_merge


Saludos!

lunes, diciembre 01, 2014

Nueva versión v2.5.3 de las herramientas Visual FoxPro 9 para PlasticSCM (Incluye FoxBin2Prg.exe v1.19.37)


Estas herramientas son un grupo de scripts vbs y programas Visual FoxPro 9 que se configuran dentro de PlasticSCM para poder invocar a FoxBin2Prg (incluye solo el EXE) desde dentro de la interfaz de Plastic.


Está liberada la versión v2.5.3 de las herramientas Visual FoxPro 9 para PlasticSCM, con los siguientes cambios:

  • Actualizada la versión de FoxBin2Prg (solo el EXE) a la versión v1.19.37
  • Actualizados los scripts y programas para Plastic para aprovechar las mejoras visuales y funcionales de la nueva versión de FoxBin2Prg




El README.txt explica como se configura en Inglés y Español, y también está explicado en esta nota: Cómo configurar las Herramientas de VFP 9 para Plastic


Nota: Los fuentes del proyecto FoxBin2Prg y el historial de ambios, están en CodePlex, en este link.


Como actualizar las existentes:
Con descargarlas y reemplazar los archivos en el sitio que los hayan puesto antes es suficiente.


Link de descarga:
https://github.com/fdbozzo/foxpro_plastic_diff_merge


Saludos!

viernes, octubre 10, 2014

PlasticSCM: Qué es el Cherry Pick y cómo se usa

Por: Fernando D. Bozzo

El Cherry Pick, que se traduce como "selección de cerezas", es una operación que permite seleccionar solamente los cambios de una rama o changeset, sin incorporar todo el resto de archivos heredados.

En otras palabras, si un changeset o rama tiene 2 archivos nuevos, pero ya existían 10 archivos previamente, el cherry pick permite seleccionar los 2 archivos nuevos, y no todos los archivos que ya existían, como haría el merge.



Ejemplo 1 - Cherry pick de un changeset



Supongamos que tenemos la rama-1 de la imagen, con 3 changesets (3, 4 y 5):



Y que en cada changeset hemos ido agregando un archivo de texto, archivo1.txt en el changeset 3, archivo2.txt en el changeset 4 y archivo3.txt en el changeset 5, como vemos en la siguiente lista (columna derecha):



Si quisiéramos pasar el contenido del changeset 5 (donde se agregó el archivo3.txt) de la rama-1 a la rama-2, que ahora está vacía, normalmente seleccionaríamos el cs:5 y luego "merge desde este changeset" en el menú, pero en este caso el merge mostraría lo siguiente:



Como vemos, nos trae no solo lo del changeset 5 (cs:5), sino todos los archivos heredados de las operaciones anteriores.

Para resolver este caso, lo que podemos hacer es un Cherry Pick para seleccionar exclusivamente el contenido del changeset elegido, pero sin incluir lo heredado, para lo que seleccionando el cs:5 elegimos en el menú del click-derecho la opción "Cherry pick de este changeset", lo que mostrará lo siguiente:



Con esto ya tenemos los cambios de ese changeset particular y el explorador de ramas mostrará el cherry pick con una línea violeta:





Ejemplo 2 - Cherry pick de una rama


Lo mismo que pasó antes con los archivos de un changeset, se aplica a los archivos de una rama (que es la suma de todos sus changesets), por lo que al realizar un Cherry pick de una rama, estaremos pasando al destino todos los archivos modificados en esa rama, indistintamente de si se modificó en el primer o último changeset, pero sin heredar todos los archivos anteriores a la misma.

Para hacer un cherry pick de una rama, el intervalo se selecciona eligiendo el changeset anterior a la rama y el último de la rama (intervalo abierto-cerrado):





Ejemplo 3 - Cherry pick para restaurar un changeset quitado con un merge sustractivo


Supongamos que hicimos un merge sustractivo para quitar de una rama los cambios hechos en el mismo, porque había un error que requerirá tiempo para corregir, pero se quiere poder seguir trabajando con el resto de cambios.

Usando el primer ejemplo, si quisiéramos quitar el changeset 4 que contenía el archivo2.txt, haríamos click-derecho en ese changeset, seleccionamos "Merge avanzado" y luego "Merge sustractivo del changeset...", lo que mostraría lo siguiente:




Y una vez hecho el checkin, se reflejaría en el diagrama de ramas con una línea roja:



Si exploráramos el repositorio en el nuevo changeset, comprobaríamos que el archivo2.txt se quitó:



Si quisiéramos volver a incorporar los cambios de ese changeset, entonces tendríamos que seleccionar "Cherry pick de este changeset", lo que mostraría lo siguiente:




¿Pero por qué no muestra el archivo de antes? Porque Plastic lleva la cuenta de las operciones que hemos realizado antes, y como ya le hemos indicado que no queríamos ese archivo y tampoco hay nada nuevo que agregar, entonces no muestra nada para hacer.

Para forzar a Plastic a que incluya los cambios de ese changeset, debemos indicarle que no tenga en cuenta las operaciones anteriores, lo que se hace eligiendo el botón inferior "Opciones de merge..." y luego marcando la opción "Ignorar merge tracking":




Y ahora sí, mostrará el archivo que queríamos recuperar:




Al finalizar el checkin, en el diagrama de ramas veremos una línea violeta:



Y explorando los archivos en ese changeset, ya veremos todos los archivos nuevamente:





Ejemplo 4 - Cherry pick para restaurar una rama quitada con un merge sustractivo


Este caso es como el anterior, pero cambia la forma de seleccionar el intervalo (abierto-cerrado).

Así como para hacer un merge sustractivo de una rama se debe seleccionar el changeset anterior a la rama (1) y el último changeset de la rama (2) (intervalo rojo difuso):




Para hacer un cherry pick de una rama, el intervalo se selecciona de igual forma (intervalo violeta difuso):




Y al igual que en el Ejemplo 3, cuando el cherry pick se hace para restaurar algo que anteriormente fue quitado total o parcialmente, no hay que olvidar elegir "Opciones de merge.." y marcar la opción "Ignorar merge tracking"




Resumen



Como hemos visto, el Cherry Pick es muy útil en varias situaciones, permitiendo realizar una selección puntual para una operación precisa.

En varios casos puede reemplazar al Merge normal, y en situaciones donde el merge sea demasiado complicado y muestre los bloques de código a mezclar muy "desordenados", vale la pena probar con el Cherry Pick, cuyo algoritmo de merge puede mostrar esos mismo bloques más fáciles de mezclar.

La única particularidad que se debe recordar, es que si hubo una merge sustractivo anterior, se debe marcar la opción "Ignorar merge tracking" en las opciones del merge, y así evitaremos no solamente la situación de no ver ningún archivo, sino que además permitirá resolver un merge que requiera intervención manual, de una forma más óptima y clara.


Hasta el próximo artículo! :D

miércoles, octubre 08, 2014

Nueva versión v2.5.2 de las herramientas Visual FoxPro 9 para PlasticSCM (Incluye FoxBin2Prg.exe v1.19.36)


Estas herramientas son un grupo de scripts vbs y programas Visual FoxPro 9 que se configuran dentro de PlasticSCM para poder invocar a FoxBin2Prg (incluye solo el EXE) desde dentro de la interfaz de Plastic.


Está liberada la versión v2.5.2 de las herramientas Visual FoxPro 9 para PlasticSCM, con los siguientes cambios:





El README.txt explica como se configura en Inglés y Español, y también está explicado en esta nota: Cómo configurar las Herramientas de VFP 9 para Plastic


Nota: Los fuentes del proyecto FoxBin2Prg y el historial de ambios, están en CodePlex, en este link.


Como actualizar las existentes:
Con descargarlas y reemplazar los archivos en el sitio que los hayan puesto antes es suficiente.


Link de descarga:
https://github.com/fdbozzo/foxpro_plastic_diff_merge


Saludos!

domingo, octubre 05, 2014

Nueva versión v2.5.1 de las herramientas Visual FoxPro 9 para PlasticSCM (Incluye FoxBin2Prg.exe v1.19.35)


Estas herramientas son un grupo de scripts vbs y programas Visual FoxPro 9 que se configuran dentro de PlasticSCM para poder invocar a FoxBin2Prg (incluye solo el EXE) desde dentro de la interfaz de Plastic.


Está liberada la versión v2.5.1 de las herramientas Visual FoxPro 9 para PlasticSCM, con los siguientes cambios:





El README.txt explica como se configura en Inglés y Español, y también está explicado en esta nota: Cómo configurar las Herramientas de VFP 9 para Plastic


Nota: Los fuentes del proyecto FoxBin2Prg y el historial de ambios, están en CodePlex, en este link.


Como actualizar las existentes:
Con descargarlas y reemplazar los archivos en el sitio que los hayan puesto antes es suficiente.


Link de descarga:
https://github.com/fdbozzo/foxpro_plastic_diff_merge


Saludos!

lunes, septiembre 22, 2014

Nueva versión v2.5.0 de las herramientas Visual FoxPro 9 para PlasticSCM (Incluye FoxBin2Prg.exe v1.19.34)


Estas herramientas son un grupo de scripts vbs y programas Visual FoxPro 9 que se configuran dentro de PlasticSCM para poder invocar a FoxBin2Prg (incluye solo el EXE) desde dentro de la interfaz de Plastic.


Está liberada la versión v2.5.0 de las herramientas Visual FoxPro 9 para PlasticSCM, con los siguientes cambios:

  • Actualizado filename-caps a versión v2.2 (programa de capitalización de archivos usado por FoxBin2Prg)
  • Nuevo script PlasticSCM_VFP9_FoxBin2Prg.vbs con mensaje de feedback, para sustituir a la llamada directa que se hacía de FoxBin2Prg que no tiene mensaje de feedback




El README.txt explica como se configura en Inglés y Español, y también está explicado en esta nota: Cómo configurar las Herramientas de VFP 9 para Plastic


Nota: Los fuentes del proyecto FoxBin2Prg y el historial de ambios, están en CodePlex, en este link.


Como actualizar las existentes:
Con descargarlas y reemplazar los archivos en el sitio que los hayan puesto antes es suficiente.


Link de descarga:
https://github.com/fdbozzo/foxpro_plastic_diff_merge


Saludos!

domingo, septiembre 14, 2014

PlasticSCM: Cómo configurar la replicación entre repositorios Plastic locales y remotos

Por: Fernando D. Bozzo


[05/06/2015 - Actualizado con nuevo apartado de Exportación e Importación manual]

Suena complicado el título, como algo de la NASA, pero realmente no lo es.

En resumen: En Plastic, la "replicación" se refiere a la sincronización entre 2 repositorios, que es lo mismo que sincronizar 2 bases de datos, donde todos los datos nuevos que se han agregado en una de ellas se pasan a la otra, y viceversa, para lograr que ambas tengan lo mismo.

Estas bases de datos pueden ser locales, remotas o mezcla de ambas. En el caso de un repositorio remoto, puede ser tanto la PC o Portátil de al lado, como un servidor en otra planta o en otro edificio o ciudad.



¿Qué diferencia hay entre usar la Replicación y no usarla?


La replicación es simplemente una redundancia de repositorios, una forma de tener más de una copia de lo mismo y en ciertos casos es la única forma de poder trabajar con otras personas. Por ejemplo, cuando se trabaja con un Portátil que se puede llevar al cliente, y no se disponga de una conexión al repositorio principal (obviamente, siempre que el Portátil no sea el repositorio principal), entonces se hace necesario trabajar offline, o sea, con un repositorio local para poder ir protegiendo los cambios y mantener un historial de los cambios, que más tarde se sincronizarán con el repositorio central, que está en una PC de casa o de la oficina.

En el caso de no usar replicación de repositorios, se estará usando un único repositorio siempre, que estará todo el tiempo actualizado con lo último y no requerirá ninguna sincronización. Siempre estará la posibilidad abierta para crear otro repositorio en otro PC y hacer replicación.

Ahora, centrándonos en las diferencias, más allá de la sincronización en sí, la única diferencia notable es respecto de la eliminación de changesets, ya que si necesitamos eliminar un changeset o una rama por haberla creado mal, por ser innecesaria o por lo que sea, trabajando con un único repositorio esto es algo que se hace en un solo paso (se borra y listo), pero trabajando con replicación, se debe hacer esa eliminación en cada uno de los repositorios replicados, ya que si solo se hace en uno, al sincronizar se volverá a restablecer el/los changesets y ramas eliminadas, ya que los repositorios que tengan esa información se la pasarán a los que no la tengan.

Al final es algo simple de solucionar, pero es importante saber cómo funciona.



¿Qué ventaja tiene usar la Replicación?


La ventaja principal, es que con un par de clicks podemos hacer un "backup" en otro ordenador conectado a la red o a Internet, cosa que si a nuestro ordenador principal le pasa algo, al menos tenemos la tranquilidad de que tenemos una copia en otro ordenador, y es difícil que se estropeen 2 ordenadores a la vez.

A colación de esto, ¿recuerdan cuántas personas han aparecido en los foros diciendo que habían perdido todo o parte del trabajo (nada menos que los fuentes), y que sólo tenían, con suerte, un EXE para descompilar? ¿o los que se les ha estropeado algún binario (en general un form) con el que estuvo trabajando todo el día?

Espero que con lo fácil que es esto, ustedes no sean nunca esas personas, porque con esta facilidad que ofrece un DVCS y en varios casos sin coste (como este), ya no hay excusas. La comodidad es muy peligrosa en estos temas.




Configuración de una vista de sincronización


Veamos un ejemplo práctico de una replicación de un servidor Plastic local, por ejemplo, la PC o Portátil que usamos para desarrollar, y un servidor externo, que bien podría ser otro PC en la red o en Internet.

Nota: En mi caso, la PC local de trabajo es un Windows 7 virtualizado que llamé win7u, y el servidor es un PC físico con Ubuntu Linux llamado fer-desktop. En ambos casos, ustedes deben reemplazar los nombres de PC por los vuestros, así que las imágenes a continuación son orientativas. Para saber el nombre de vuestro PC, pueden abrir la ventana de comandos DOS, escribir SET <Enter> y ver una variable que dice COMPUTERNAME=NombreDeVuestroPC.



1) Lo primero es abrir la vista de Sincronización de repositorios, en el panel izquierdo, donde podemos observar 2 paneles verticales; el superior con los nombres de las "vistas" de conexiones y el de abajo con las conexiones de esa vista:




2) Luego añadimos una vista (de conexiones), que en este caso es una agrupación de una o más conexiones que se agruparán bajo un nombre identificativo a elección:




Una vez agregada la vista, ya aparece en la lista:




3) Ahora agregamos el origen de la conexión, que es el PC con el repositorio de origen, por ejemplo, nuestro PC o Portátil de trabajo (recordar, win7u es mi PC, ustedes pongan el suyo!):




 Una vez seleccionado el PC, el puerto y el repositorio, ya aparece el origen creado en la vista:




4) Ahora asociamos el destino de replicación, que puede ser otro repositorio en la misma PC o en otra que esté visible en la red o en Internet, en mi caso será fer-desktop, pero ustedes pongan la suya.

Cuando clickeen "Buscar" es posible que les pida las credenciales para conectarse al repositorio indicado, así que deberán indicarlas, y opcionalmente pueden marcar el check para "Recordar credenciales como un perfil de conexión", que luego se podrá acceder desde la opción "Preferencias" del panel izquierdo:

Nota: En el caso de que el repositorio externo sea de Internet o fuera de nuestra empresa o casa, conviene usar siempre una conexión SSL para mejorar la seguridad, en cuyo caso el servidor debe indicarse como ssl://ServidorRemoto:8088, donde ServidorRemoto puede ser una dirección URL o una IP.





5) Una vez puestos los datos del PC/servidor destino y puerto, se mostrarán los repositorios encontrados en el mismo (solo los que se tenga acceso), para seleccionar uno y aceptar:




6) Ya podemos "Refrescar" la conexión para que verifique si hay algo que sincronizar, por lo que hacemos click-derecho en la conexión deseada:




7) Si hay algo, como en este ejemplo, se mostrará qué hay, y si son cambios entrantes o salientes, siendo los entrantes los que actualizarán nuestro repositorio origen (normalmente el local) y los salientes los que se exportarán al repositorio destino (normalmente externo):




8) Si hay cambios, sincronizamos todo:




9) Se mostrarán las ramas que se sincronizarán y se da la oportunidad de cambiar algunos parámetros de la sincronización:




10) Si hay cambios para sincronizar, se mostrará un avance del proceso:




11) Hasta que finalice:




12) Una vez terminada la sincronización, se mostrará un mensaje de estado:




13) Respecto del check que había comentado cuando agregamos el repositorio destino, que permitía guardar las credenciales como un Perfil de conexión, estos datos se pueden acceder desde la opción de "Preferencias" del panel izquierdo, de donde se pueden modificar, agregar o eliminar perfiles, e indicar si el perfil es de conexión "Automática" o "Manual":


Respecto de elegir conexión Automática o Manual, la decisión se debe basar en si el repositorio a conectarse está todo el tiempo disponible (siempre online) o no (a veces offline).



[Actualizado. 05/06/2015 >>]

Exportación e Importación manual de repositorios


Plastic permite exportar o importar los repositorios, uno a uno, de forma manual por medio del comando cm desde la ventana de comandos. El formato es abierto y se basa en el mismo formato que usa git, con lo cual también se puede usar para importar o exportar en git.


Exportación:

La sintaxis para exportar es la siguiente:

cm fast-export repositorio@servidor:8087 [archivo-destino.dat]

Si no se indica el nombre del archivo destino, se llamará "fast-export.dat", y si existiera, se le irá agregando 1, 2, 3, etc.


Este es un ejemplo de uso en Linux (muy similar a Windows):

cm fast-export FoxUnit@fer-desktop:8087 ./FoxUnit.dat


Importación:

La sintaxis para importar es la siguiente:

cm fast-import repositorio@servidor:8087 archivo-a-importar



Más información en la web oficial:
https://www.plasticscm.com/documentation/technical-articles/kb-fast-import-fast-export.html
[<<]



Notas finales

Este artículo pretendió explicar de forma rápida como configurar una replicación, pero no es extensivo, y hay unos cuántos parámetros y combinaciones interesantes para ver, como por ejemplo la posibilidad de replicar un origen a múltiples destinos y otras opciones, que les dejo para que les investiguen ustedes.

Espero que les haya sido útil.


Hasta la próxima! :D


Artículos relacionados:
PlasticSCM: Opciones de conectividad, transporte del código fuente y backup


viernes, agosto 29, 2014

Nueva versión v2.4.28 de las herramientas Visual FoxPro 9 para PlasticSCM (Incluye FoxBin2Prg.exe v1.19.33)

Qué son las Herramientas VFP 9 para Plastic:


Estas herramientas son un grupo de scripts vbs y programas Visual FoxPro 9 que se configuran dentro de PlasticSCM para poder invocar a FoxBin2Prg (incluye solo el EXE) desde dentro de la interfaz de Plastic.


Está liberada la versión v2.4.28 de las herramientas Visual FoxPro 9 para PlasticSCM, con los siguientes cambios:




El README.txt explica como se configura en Inglés y Español, y también está explicado en esta nota: Cómo configurar las Herramientas de VFP 9 para Plastic


Nota: Los fuentes del proyecto FoxBin2Prg y el historial de ambios, están en CodePlex, en este link.


Como actualizar las existentes:
Con descargarlas y reemplazar los archivos en el sitio que los hayan puesto antes es suficiente.


Link de descarga:
https://github.com/fdbozzo/foxpro_plastic_diff_merge


Saludos!

sábado, agosto 23, 2014

PlasticSCM: Opciones de búsqueda y visualización de ramas y changesets

Por: Fernando D. Bozzo

Cuando se comienza a trabajar con ramas, al poco tiempo se puede convertir en un frondoso árbol donde a veces es difícil poder ver una rama particular y sus relaciones, porque es cruzada por varias otras que en principio no nos interesa ver.

Una de las cosas más importantes que se debe conocer, cuando se trabaja con una herramienta SCM o DVCS, es poder visualizar lo que se quiere de distintas formas, para tener un mejor control sobre lo que se está haciendo o viendo.

En este artículo veremos varias de ellas, y les recomiendo elegir estas opciones al menos una vez para conocerlas y ver su utilidad.

Nota: Todas las vistas permiten trabajar desde ellas. No solo son para visualizar.


Todas las vistas se seleccionan desde el panel izquierdo, el cuál está siempre visible:




Vista del Explorador de ramas


Esta es una vista típica de las ramas de un equipo de desarrollo donde, como se puede observar, cuesta un poco poder ver solo las ramas marcadas en amarillo:





Panel derecho del Explorador de ramas


Con el botón Navegador se puede habilitar o inhabilitar el panel derecho, que tiene varias opciones interesantes:




Apartado: Propiedades


Dentro de este apartado podemos ver información sobre el changeset o rama seleccionada, además de que desde aquí podemos modificar los comentarios:




Apartado: Opciones de visualización


Dentro de este apartado podemos controlar varios aspectos de lo que se muestra en el Explorador de ramas, incluso opciones de filtrao por fechas o niveles de hijos desde el changeset 0.

La mayoría de las opciones son simples y se pueden entender a primera vista, pero hay un par de opciones que no son tan obvian y que requieren algo de explicación, y que son las de debajo de todo: Activar modo de edición de visibilidad y Activar edición de disposición.


Activar modo de edición de visibilidad

Permite ocultar/mostrar ramas: Se elige esta opción, se marcan las ramas a ocultar y se desmarca esta opción para finalizar. Todavía no me tocó una situación donde requiera esto.

Nota: Cuando se elige esta opción, se muestra una explicación de uso debajo.


Activar edición de disposición

Esta opción permite reorganizar las ramas, para poder agruparlas de una forma más útil que la forma por defecto, por ejemplo, acercando entre sí las ramas que tienen relación directa.

Nota: Cuando se elige esta opción, se muestra una explicación de uso debajo.


La forma se uso es simple: Se marca esta opción, se elige la rama que se quiere mover (solo hacia arriba/abajo, ya que izquierda/derecha es controlado por la fecha/hora de la rama según su columna), se mueve la rama con las flechas de cursor y se vuelve a desmarcar esta opción para que queden los cambios guardados.



Nota: Si no se llegara a ver todo el panel completo y apareciera recortado en altura, seguramente el problema sea la resolución de pantalla, que debería ser como mínimo de 1280x1024 para poder ver las opciones completas.


Búsqueda rápida


El cuadro superior-derecho permite escribir para hacer un filtrado en cuando se pulsa <Enter>.

Por ejemplo, si escribiéramos tarea-025, la vista anterior resaltaría en amarillo todas las ramas que contengan ese texto en su nombre, marcando la rama seleccionada en naranja, permitiendo la navegación por las mismas con las flechas de navegación.




Nota: Una búsqueda que a veces puede ser útil, es la búsqueda por changeset, que da un único resultado. En ese caso la forma de buscar es usand la nomenclatura cs:nn , por ejemplo para buscar el changeset 51, escribiríamos cs:51 <Enter>


Opciones del Explorador de ramas


Si hacemos click-derecho sobre una rama y elegimos la opción Explorador de ramas, podemos ver las siguientes opciones:




Opción: Ir a la base de la rama


Nos permite ir al changeset de la rama padre de donde se creó esta rama, y que es a donde apunta la flecha gris fina de cada rama.



Opción: Mostrar ramas seleccionadas en un nuevo diagrama


Si quisiéramos ver una rama (o varias) por separado, sin el ruido de las que no nos interesan, las podemos marcar con CTRL+Click, al igual que se hace para elegir varios archivos en el explorador de archivos, luego hacemos click-derecho sobre una de las ramas seleccionadas y elegimos la opción en cuestión.

Si eligiéramos las 2 ramas en amarillo del principio, se abriría una nueva vista filtrada así:




Opción: Mostrar ramas seleccionadas y relacionadas en un nuevo diagrama


Si quisiéramos ver una rama (o varias) y las  ramas directamente relaciondas por separado, las podemos marcar con CTRL+Click, al igual que se hace para elegir varios archivos en el explorador de archivos, luego hacemos click-derecho sobre una de las ramas seleccionadas y elegimos la opción en cuestión.

Por ejemplo, si quisiéramos ver las ramas relacionadas a la tarea-025 del primer ejemplo, con sólo seleccionar esa rama y eligiendo esta opción se abriría una nueva vista filtrada así:





Opción: Mostrar merges pendientes para las ramas seleccionadas en un nuevo diagrama


Si alguno entiende lo que muestra este diagrama y cuándo y porqué lo hace, por favor, que me lo explique :)




Opción: Mostrar diagrama personalizado de las ramas seleccionadas...


Esta opción muestra un cuadro de diálogo que permite indicar algunas de las opciones anteriores y algunas condiciones de filtrado adicionales:





Vista de Ramas


Esta es una vista de texto con información adicional como los comentarios de las ramas, muy útil en algunos casos, que también permite seleccionar ramas y operar con ellas para hacer Diff, Merge y otras operaciones.

Nota: La rama con el changeset actual siempre se muestra en negritas.


Esta es la vista plana, donde de paso se puede ver que no comentar las ramas quita información útil a la derecha:



Y esta es la vista jerárquica (solo para ramas Plastic nativas, las de GitHub y otros repositorios pueden no verse bien anidadas):



Misma vista, pero abriendo el panel derecho de detalles con el icono marcado en rojo:




Búsqueda rápida


El cuadro superior-derecho permite escribir para hacer un filtrado en tiempo real.

Por ejemplo, si escribiéramos tarea-025, la vista plana anterior filtraría todo lo que contenga ese texto en cualquiera de las columnas mostradas, comentarios incluidos:


Nota: Las columnas permiten ordenar la información mostrada, si se cliquea en ellas.



Vista de Changesets


Al igual que la vista de Ramas, esta es una vista de texto que permite ver rápidamente los changesets con sus comentarios, fecha de creación y otros datos, y que también permite seleccionar changesets y operar con ellos para hacer Diff, Merge y otras operaciones.



Búsqueda rápida


El cuadro superior-derecho permite escribir para hacer un filtrado en tiempo real.

Por ejemplo, si escribiéramos fidel, la vista plana anterior filtraría todo lo que contenga ese texto en cualquiera de las columnas mostradas, comentarios incluidos, y ese es otro motivo para escribir cosas útiles en los comentarios:


Nota: Las columnas permiten ordenar la información mostrada, si se cliquea en ellas.




Vista de Etiquetas


Esta es otra vista de texto que permite ver rápidamente las etiquetas con sus comentarios, fecha de creación y otros datos, y que también permite operar con ellas para hacer Diff, Merge y otras operaciones.



Búsqueda rápida


El cuadro superior-derecho permite escribir para hacer un filtrado en tiempo real.

Por ejemplo, si escribiéramos 1.1, la vista plana anterior filtraría todo lo que contenga ese texto en cualquiera de las columnas mostradas, comentarios incluidos:


Nota: Las columnas permiten ordenar la información mostrada, si se cliquea en ellas.



Vista de Shelves


Esta es otra vista de texto que permite ver rápidamente las etiquetas con sus comentarios, fecha de creación y otros datos, y que también permite operar con ellas para hacer Diff, Merge y otras operaciones.



Búsqueda rápida


Tiene el mismo funcionamiento que las demás vistas de texto.


Comentarios finales


Conocer todas estas vistas y opciones de filtrado, es fundamental para poder navegar por la información que brinda una herramienta SCM o DVCS y para poder realizar operaciones con la misma.

Poder hacer todo esto es una de las mayores ventajas que aporta trabajar con estas herramientas, donde la mayoría de opciones son prácticamente imposibles si se trabaja a la antigua usanza.

Esto es lo que permite poder manipular el código de una aplicación completa con un control total y a distintos niveles de detalle.


Hasta la próxima!