Mostrando entradas con la etiqueta control de código fuente. Mostrar todas las entradas
Mostrando entradas con la etiqueta control de código fuente. Mostrar todas las entradas

sábado, abril 18, 2015

Nueva versión v1.19.42 de FoxBin2Prg (arreglos, mejoras, internacionalización API)

FoxBin2Prg es un programa pensado para sustituir a SccText(X) y TwoFox y mejorar sus funcionalidades, generando versiones de texto estilo-PRG que pueden ser modificadas y permiten recrear el binario original. Puede ser utilizado con herramientas SCM (Administradores de Control de Código Fuente, como VSS, CVS, SVN) y herramientas DVCS (como Git, Mercurial, Plastic, and others), o como programa independiente, para hacer operaciones de Diff (ver diferencias) y Merge (mezclar cambios).

Está liberada la versión v1.19.42 de FoxBin2Prg con los siguientes cambios:

  • Mejora: Agregada validación de existencia del runtime VFP 9 SP1.
    • Esta validación está agregada porque quienes no tengan como mínimo el SP1, el programa les funcionará mal, pudiendo dar errores extraños o generando mal menus u otros componentes. Esto es debido a todos los bugs que tenía VFP 9 original, y que fueron corregidos mayormente con el SP1.
  • Bug Fix: Compatibilidad con SourceSafe rota porque ocurre un error cuando sccapi consulta el soporte de archivo (Tuvia Vinitsky).
    • Para quienes usen FoxBin con SourceSafe, esta versión soluciona el problema comentado.
  • Bug Fix scx/vcx: Procesar solo un nivel de TEXT/ENDTEXT, ya que este comando no se puede anidar (Lutz Scheffler).
    • Se estaban procesando TEXT/ENDTEXT anidados, lo que podía provocar errores en casos especiales muy raros.
  • Mejora: Hacer las descripciones de algunos mensajes de error más descriptivos y precisos (Lutz Scheffler).
    • Algunos mensajes de error no eran del todo claros y no ayudaban mucho a localizar el problema. Se han mejorado algunos mensajes agregando más detalles técnicos que facilitan localizar el problema dentro de las librerías con problemas.
  • Mejora (API): Permitir especificar un archivo de entrada con path relativo (Lutz Scheffler).
    • Hasta la versión anterior solo se podían indicar archivos con path absoluto, ahora se pueden indicar también de forma relativa, como "dir\subdir\*.pjx".
  • Bug Fix scx: Los metadatos del entorno de datos no se generan bien cuando el entorno de datos es renombrado.
    • Cuando se crea un form, por defecto el entorno de datos se llama "Dataenvironment", pero se puede cambiar ese nombre. FoxBin no reconocía el entorno de datos cuando si hacía esto.
  • Bug Fix: Agregada generación del PJX/PJ2 cuando se indica "file.pjx", "*" (Lutz Scheffler).
    • Hasta ahora, cuando se indicaba procesar un proyecto con todos sus archivos, solamente se procesaban los archivos del proyecto, pero no el proyecto en sí. Ahora también se procesa el PJX/PJ2 al indicar "*".
  • Algunas mejoras en las translaciones al Alemán (Lutz Scheffler)
    • Lutz corrigió algunas de las traducciones que estaban hechas con Google Translate :)
  • Mejora: Agregado multiprocesamiento de proyectos (*.pjx, *.pj2) cuando se especifica "file.pjx", "*" (Lutz Scheffler)
    • Hasta ahora solo se podía procesar un projecto completo por vez; ahora se pueden procesar múltiples proyectos en un mismo procesamiento, lo que permite optimizar el procesamiento de los archivos compartidos entre esos proyectos, procesándolos una sola vez.
  • Mejora: Cambiada la clase de base de FoxBin2Prg a Session (Lutz Scheffler).
    • Antes era de tipo Custom, ahora al ser de tipo Session permite que los cursores internos no alteren el entorno de trabajo cuando se usa FoxBin desde la ventana de comandos de Fox con DO.
  • Mejora: Permitir procesar todos los archivos de los proyectos sin convertir los PJX/2, con "*-" (Lutz Scheffler).
    • Esta nueva opción "*-" permite procesar los archivos de los proyectos excluyendo al propio proyecto PJX/PJ2.
  • Bug Fix pjx/pj2: Si se usa un fin de línea (CR+LF) en los datos de propiedades del diálogo "Build" del pjx, la generación del pj2 queda malformada.
    • En un proyecto, al intentar generar un ejecutable o DLL se habilita un cuadro de diálogo que permite seleccionar el botón "Version" donde hay varios metadatos del proyecto, incluyendo la versión y varios otros como Comments, Company Name, etc. Si en alguno de estos campos se pega un valor que contiene fines de línea (Fox no permite usar Enter en ellos, pero al copiar/pegar desde otro sitio, no lo valida), cuando se exporta el proyecto a texto esos valores quedan corrompidos porque se exportan en formato multi-línea en vez de en una sola línea, no permitiendo regenerar el proyecto original. Se corrige ese problema codificando los fines de línea para luego restaurarlos.
  • Mejora: El archivo de configuración por defecto foxbin2prg.cfg ha sido renombrado a foxbin2prg.cfg.txt para no sobreescribir los setetos del cfg del usuario (Lutz Scheffler).
    • Muchos usuarios usan un archivo de configuración  personalizado en el directorio de FoxBin, y cuando se descargan las nuevas versiones se les pisa con el que se incluye por defecto. Como el archivo incluido está solamente a efectos de documentación y para usarlo como modelo en el que basarse, se ha renombrado a foxbin2prg.cfg.txt para evitar que vuelva a sobreescribir las configuraciones de los usuarios en la actual y futuras versiones.
  • Mejora: Agregado el soporte de salida DOS errOut e implementado en el método writeErrorLog cuando se loguean errores.
    • El sistema operativo tiene una entrada estándar (stdIn) una salida estándar (stdOut) y una salida especial para errores (stdErr). Cuando ocurre un error durante el procesamiento de FoxBin, se envía la información del mismo a la salida de error stdErr, además de generar el log de errores. Esto permite que se pueda capturar dicha salida desde otros programas en tiempo real.
  • Mejora: Agregado el soporte completo de máscaras de archivo *? para multi-procesamiento de archivos de la misma extensión (Lutz Scheffler).
    • Hasta ahora solo se soportaba el procesamiento de un archivo (fullpath-filename) o de todos los archivos de una extensión (fullpath-*.ext), ahora se permite cualquier combinación de comodines, lo que permite filtrar los archivos por criterios mucho más flexibles.
  • Mejora (API): Agregado nuevo parámetro para permitir un archivo CFG principal alternativo (Lutz Scheffler).
    • El método API execute() permite un nuevo parámetro cCFG_File para indicar un archivo de configuración en una ruta distinta a la predeterminada, que actualmente es la ruta de instalación de FoxBin.
  • Mejora (API): Agregado nuevo método get_Processed() para obtener información acerca de los archivos procesados (Lutz Scheffler).
    • El nuevo método API get_Processed() devuelve un array de 6 columnas (cFile, cInOutType, cProcessed, cHasErrors, cSupported, cExpanded) con información de procesamiento según los parámetros indicados de entrada. Si además se usa la propiedad l_ProcessFiles=.F. antes de realizar la consulta, se puede obtener información parcial de procesamiento, pero sin realizar el procesamiento, lo que lo hace muy rápido y útil cuando se quiere obtener la lista de archivos que se procesarán.
  • Mejora: Agregada nueva salida DOS stdOut para el procesamiento de archivos (Lutz Scheffler).
    • Mientras se procesan archivos, se envía la información del proceso a la salida estándar del sistema (stdOut) con la misma información que devuelve get_Processed, pero ubicando la columna del nombre de archivo al final. Esto permite que se pueda capturar dicha salida desde otros programas en tiempo real.
  • Bug Fix: Arreglada la cancelación del proceso con la tecla Esc.
    • En la versión anterior no se podía cancelar el proceso con la tecla Esc, ni con el botón Cancelar. Ya está solucionado.
  • Mejora: Ordenar alfabéticamente los campos de las tablas/vistas para facilitar el diff (ver diferencias) y el merge (mezclar cambios), mientras se mentiene una lista con el ordenamiento original de los campos para la correcta regeneración del DBC (Ryan Harris).
    • Cuando se modifican vistas o miembros de una Base de Datos, la información no mantiene siempre el mismo orden, lo que puede provocar que al exportar a texto se vea como si se hubieran realizado muchos cambios, cuando realmente por ahi se agregó solo un campo en una vista. Ahora se ordenan los miembros del DBC (conexiones, tablas, vistas, índices y campos de tablas y vistas) alfabéticamente, lo que disminuye notoriamente las diferencias al hacer estos cambios.
  • Mejora: Aplicar ClassPerFile a las conexiones, tablas, vistas y SPs de los DBC (Ryan Harris).
    • Cuando una Base de Datos tiene mucha información, tablas, vistas, etc, el archivo de texto generado puede ser muy grande y difícil para comparar. Ahora es posible aplicar el mismo concepto de ClassPerFile a los DBC, donde se generará un archivo separado por cada conexión, tabla o vista y uno extra para todos los procedimientos almacenados, lo que facilita mucho comparar los miembros que cambien solamente.
  • Bug Fix vw: Ahora se guardan y restauran las propiedades Path y RecordCount de las vistas.
    • Cuando se usan vistas desconectadas, no se estaban exportando estas dos propiedades, y esa información se perdía al regenerar las vistas desconectadas. Ahora se generan.
  • Mejora: Nuevo icono App e imagen de fondo por defecto para FoxBin2Prg, configurable con el nuevo seteo de CFG "BackgroundImage".
    • Al fin, FoxBin tiene un icono e imagen de fondo que lo define :)
  • Bug Fix mnx: Los nombres de Pad de menú vacíos no se mantienen cuando se regenera un menú definido con nombres de Pad vacíos (Lutz Scheffler).
    • Cuando se crean menus, las opciones del primer nivel permiten que se defina el nombre del Pad, o que se deje en blanco. Si se dejaba en blanco FoxBin reemplazaba el nombre por uno secuencial único. Ahora se vuelve a dejar en blanco.
  • Mejora (API): Nueva propiedad "l_ProcessFiles" que permite configurarse a .F. cuando se usa foxbin2prg como objeto para obtener información de procesamiento de archivos con el método get_Processed sin realizar procesamiento real.
    • Esto es lo ya comentado antes para el método get_Processed()
  • Bug Fix frx/lbx: Limpiados algunos CR,LF,TAB sobrantes de algunos Tag de los FR2/LB2 que fueron introducidos en versiones anteriores (Ryan Harris).
    • Las versiones anteriores de FoxBin dejaban un fin de linea demás en algunas cláusulas Tag de los reportes (FRX) y etiquetas (LBX). Ahora se quita ese fin de línea demás.
  • Bug Fix scx/vcx/dbc: Eliminar archivos ERR cuando se procesa con el switch UseClassPerFile (Ryan Harris).
    • Cuando se usa ClassPerFile, no se estaban borrando los archivos .ERR al iniciar el proceso, como se hace con los archivos cuando no se usa este seteo. Ya está solucionado.
  • Mejora: Implementada la herencia de archivos CFG entre directorios.
    • Esta es una característica que ahorra muchísimos archivos de configuración cuando se usa FoxBin en múltiples proyectos, ya que además del archivo de configuración principal, que es el del directorio de instalación de FoxBin (si existe), se pueden usar archivos de configuración en uno o más directorios cuyas configuraciones se irán heredando en los subdirectorios, permitiendo tener unos pocos archivos CFG donde se cambien solo los seteos específicos que se necesiten y que controlen todos los subdirectorios bajo ellos. Por ejemplo, ahora es posible que un directorio tenga activada la compatibilidad de extensiones con SourceSafe y tener otro CFG en otro directorio con la configuración opuesta.
  • Mejora (API): Nuevo metodo get_DirSettings() que retorna un objeto CFG con los seteos para el directorio indicado (Lutz Scheffler).
    • Este nuevo método API permite devolver un objeto con los seteos que se aplican en el directorio indicado. Esto puede ser útil cuando se usa FoxBin para crear una interfaz con una herramienta SCM/DVCS como git, donde puede ser necesario conocer esta información.
  • Mejora: Permitir la generación de texto para una clase sola de una librería cuando se usa ClassPerFile (Lutz Scheffler).
    • FoxBin genera archivos completos, de una pieza o en partes (con ClassPerFile:1 ó 2). Ahora se puede solicitar la generación de una sola clase a texto, lo que permite ahorrar bastante tiempo cuando se quiere controlar el proceso a bajo nivel.
  • Mejora (API): Renombrados los nombres de los métodos a Inglés para facilitar su entendimiento internacional (Mike Potjer).
    • Este es un cambio importante que requiere que quienes usan FoxBin como objeto cambien algunos nombres de métodos que estaban en español a la nueva nomenclatura inglesa. El motivo del cambio sugerido es que FoxBin ha sustituido al SccText(X) y a TwoFox y se usa en varios países de habla inglesa y no inglesa (algunos países de América Latina, EEUU, Alemania, Francia, España y algunos otros) y los desarrolladores no Españoles tienen algunos problemas para adaptarse a los nombres en Español, lo que les dificulta usar la API, por lo que opté por usar nomenclatura estándar en Inglés, que es lo que usa la mayoría de programas. Igualmente los métodos publicados para usarse eran unos pocos (menos que los de la tabla de abajo), así que no requerirá mayor esfuerzo hacer las adaptaciones para usar los nuevos nombres. Además, al haber ahora una lista de métodos oficiales, ya no habrá cambios en este sentido. Se recomienda no usar los métodos no documentados, ya que esos sí pueden cambiar o incluso desaparecer.

Esta tabla resume los métodos más usados:

Antiguo nombre Nuevo nombre
Ejecutar Execute
TieneSoporte_* hasSupport_*
EvaluarConfiguracion EvaluateConfiguration
AvanceDelProceso updateProgressbar
cargar_frm_avance loadProgressbarForm
descargar_frm_avance unloadProgressbarForm


Ejemplo de uso de FoxBin desde la ventana de DOS para generar salida a stdOut:

C:\>foxbin2prg.exe "tests\datos_test\fb2p_dbc.dbc" | find /V ""
I,P1,E0,S1,X0,c:\tests\datos_test\fb2p_dbc.dbc
O,P1,E0,S1,X1,c:\tests\datos_test\fb2p_dbc.dc2
O,P1,E0,S1,X1,c:\tests\datos_test\fb2p_dbc.connection.remote_connection_dbf.dc2
O,P1,E0,S1,X1,c:\tests\datos_test\fb2p_dbc.connection.remote_connection_oracle.dc2
O,P1,E0,S1,X1,c:\tests\datos_test\fb2p_dbc.table.fb2p_depto.dc2
O,P1,E0,S1,X1,c:\tests\datos_test\fb2p_dbc.table.nombrelargodeldbf.dc2
O,P1,E0,S1,X1,c:\tests\datos_test\fb2p_dbc.view.rv_db_debug_setup.dc2
O,P1,E0,S1,X1,c:\tests\datos_test\fb2p_dbc.view.vista_local.dc2
O,P1,E0,S1,X1,c:\tests\datos_test\fb2p_dbc.view.vw_local_encuestas.dc2
O,P1,E0,S1,X1,c:\tests\datos_test\fb2p_dbc.view.vw_ora_convenios.dc2
O,P1,E0,S1,X1,c:\tests\datos_test\fb2p_dbc.view.vw_ora_dual.dc2
O,P1,E0,S1,X1,c:\tests\datos_test\fb2p_dbc.database.storedproceduressource.dc2

La última línea indica:
Output file (O), Processed (P1), Without Errors (E0), Supported (S1), Not Extended file (X0) and the Full path filename


Como actualizar el FoxBin2Prg existente:Con descargar el zip y reemplazar los archivos en el sitio que los hayan puesto antes es suficiente.


Link  de descarga de VFPx:
https://vfpx.codeplex.com/releases/view/116407

Link de descarga de GitHub:
https://github.com/fdbozzo/foxbin2prg


 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!

Nueva versión v1.19.41 de FoxBin2Prg (arreglos)

FoxBin2Prg es un programa pensado para sustituir a SccText(X) y TwoFox y mejorar sus funcionalidades, generando versiones de texto estilo-PRG que pueden ser modificadas y permiten recrear el binario original. Puede ser utilizado con herramientas SCM (Administradores de Control de Código Fuente, como VSS, CVS, SVN) y herramientas DVCS (como Git, Mercurial, Plastic, and others), o como programa independiente, para hacer operaciones de Diff (ver diferencias) y Merge (mezclar cambios).

Está liberada la versión v1.19.41 de FoxBin2Prg con los siguientes cambios:

  • Bug Fix db2: Detección errónea de tabla inválida cuando el tamaño es inferior a 328 bytes. Límite mínimo cambiado a 65 bytes.
    • En una versión anterior se agregó una validación extra para detectar tablas inválidas, pero el límite fue un poco alto (328 bytes), siendo que se puede tener una tabla todavía más chica con un campo char(1) y sin registros que solo ocupe 65 bytes. Se ha corregido ese límite para que no de falsos positivos.
  • Bug Fix vcx/scx: Detección errónea de estructuras PROCEDURE/ENDPROC cuando se usan como parámetros en LPARAMETERS (Ryan Harris)
    • Cuando se usan nombres de estructuras, como PROCEDURE/ENDOC,etc, (que son palabras reservadas) como nombres de parámetro en nueva línea (o sea, el LPARAMETERS en una línea y un parámetro llamado, por ej., "procedure" en la siguiente) FoxBin2Prg lo detectaba como una estructura y no como un parámetro. En esta versión se tiene en cuenta si la línea anterior termina con punto y coma ";" para detectar qué es.


Como actualizar el FoxBin2Prg existente:Con descargar el zip y reemplazar los archivos en el sitio que los hayan puesto antes es suficiente.


Link  de descarga:
https://vfpx.codeplex.com/releases/view/116407


 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!

Nueva versión v1.19.40 de FoxBin2Prg (arreglos y mejoras)

FoxBin2Prg es un programa pensado para ser utilizado con herramientas SCM (Administradores de Control de Código Fuente, como VSS, CVS, SVN) y herramientas DVCS (como Git, Mercurial, Plastic, and others), o como programa independiente, para hacer operaciones de Diff (ver diferencias) y Merge (mezclar cambios), que pretende sustituir a SccText(X) y TwoFox y mejorar sus funcionalidades, generando versiones de texto estilo-PRG que permiten recrear el binario original.

Está liberada la versión v1.19.40 de FoxBin2Prg con los siguientes cambios:

  • Mejora frx/lbx: Limpiar ASCII 0 del campo expression de Dataenvironment, Cursores y Relaciones.
    • Aparentemente en algunos campos de expresión FoxPro guarda una cadena larga de chr(0). Luego de hacer algunas pruebas parece que esto es algo innecesario y que los reportes funcionan igual sin la misma, además de mejorar el soporte para algunas herramientas SCM o DVCS donde cualquier caracter de control provoca que el archivo se asuma como binario y no se pueda mostrar como texto.
  • Bug fix frx/lbx: Cuando se usa el entorno de datos, solo se está guardando un cursor, y si hay más se pierden.
    • Este es un bug antiguo. Cuando se usa un reporte con entorno de datos y el mismo tiene más de una tabla, solo la primera tabla es guardada, perdiéndose el resto. Ahora queda solucionado.
  • Agregada nueva configuración "ShowProgressbar:2" para activar la barra de progreso solamente cuando se procesan directorios y desactivarla cuando se procesan archivos sueltos (Jim Nelson)
    • Se quita la opción de configuración DontShowProgress, se agrega la nueva ShowProgressBar y se agrega el nuevo valor "2" (antes solo permitía activar o desactivar) para permitir activar la barra de progreso solamente cuando se procesan múltiples-archivos y desactivarla cuando se procesan archivos individuales.
  • Bug fix dbf: [Error 12, variable "tcOutputFile" is not found] cuando DBF_Conversion_Support=4 y el archivo de salida es igual al generado (Mike Potjer)
  • Mejora scx/vcx/sc2/vc2: Detección de nombres de objeto duplicados para notificar casos de corrupción.
    •  Se agrega una nueva medida de detección de corrupción de archivos vcx/scx, donde se detectan objectos duplicados con el mismo nombre en el mismo contenedor (por ejemplo, 2 botones "Form1.Command1"). Esto no puede ocurrir cuando se usa el IDE de FoxPro, ya que no permite repetir los nombres de objeto (por eso los numera 1,2,3,etc), pero puede ocurrir cuando se modifica la clase por otros medios no-estándar manuales o con programas externos. Si se detectan nombres duplicados, se reportan los errores detectados y no se sobreescribe el archivo destino.
  • Arreglo para "Error 2183: Operation requires that SET MULTILOCKS is set to ON" en algunas conversiones de DBF
    • Este error puede ocurrir al convertir algunos DBF a texto que pertenezcan a un DBC y que tengan un campo autoincremental. Ahora queda solucionado.


Como actualizar el FoxBin2Prg existente:Con descargar el zip y reemplazar los archivos en el sitio que los hayan puesto antes es suficiente.


Link  de descarga:
https://vfpx.codeplex.com/releases/view/116407


 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!

Nueva versión v1.19.39 de FoxBin2Prg (arreglos y mejoras)

FoxBin2Prg es un programa pensado para ser utilizado con herramientas SCM (Administradores de Control de Código Fuente, como VSS, CVS, SVN) y herramientas DVCS (como Git, Mercurial, Plastic, and others), o como programa independiente, para hacer operaciones de Diff (ver diferencias) y Merge (mezclar cambios), que pretende sustituir a SccText(X) y TwoFox y mejorar sus funcionalidades, generando versiones de texto estilo-PRG que permiten recrear el binario original.

Está liberada la versión v1.19.39 de FoxBin2Prg con los siguientes cambios:

  • Bug fix vbs: Los scripts vbs no muestren los errores del proceso de FoxBin2Prg.
    • Por todos los cambios y mejoras de las últimas 2 versiones, hubo cambios en el manejo de los LOGs que afectaron a los scripts. Estos ahora vuelven a mostrar los errores correctamente.
  • Nuevo: Cuando se usan las claves BIN2PRG o PRG2BIN permitir procesar un archivo solo (Mike Potjer)
    • BIN2PRG y PRG2BIN son palabras clave nuevas para la línea de comandos, que permiten usar FoxBin2Prg sin necesitar más de los scripts. Originalmente estaban pensadas para procesar directorios, pero también permiten procesar archivos individuales. Su uso como línea de comandos (y dentro de accesos directos) es: FoxBin2Prg.exe "BIN2PRG" <archivo|directorio>
  • Nuevo: Agregar la clave SHOWMSG y dejar INTERACTIVE para un diálogo interactivo (Mike Potjer)
    • SHOWMSG es una palabra clave nueva, que sirve para mostrar el mensaje de estado al terminar el proceso de archivos, lo que permite reemplazar los scripts vbs por el FoxBin2Prg.exe con parámetros adicionales. Su uso como línea de comandos (y dentro de accesos directos) es: FoxBin2Prg.exe "SHOWMSG" <archivo|directorio>
  • Nuevo: Cuando se procesa un directorio con foxbin2prg.exe solo y la clave INTERACTIVE, mostrar un diálogo para preguntar qué procesar (Mike Potjer)
    • En la versión anterior el uso de la palabra clave INTERACTIVE no estaba muy claro y se prestaba a confusión. Ahora INTERACTIVE se usa solamente con FoxBin2Prg para poder procesar tanto archivos individuales, como viene siendo hasta ahora , como también directorios, para los que preguntará qué tipo de conversión se desea hacer, lo que permite reemplazar los scripts vbs por el FoxBin2Prg.exe con parámetros adicionales. Su uso como línea de comandos (y dentro de accesos directos) es: FoxBin2Prg.exe "INTERACTIVE" <archivo|directorio>
  • Bug fix dc2: Los datos de DisplayClass y DisplayClassLibrary tenían el valor de "Default" en vez del propio (Christopher Kurth/Ryan Harris)
    • Al generar la información de las vistas de una base de datos, las propiedades DisplayClass y DisplayClassLibrary tenían el valor de la propiedad "Default" en vez del valor correcto. Christopher Kurth y Ryan Harris han pasado el arreglo de este bug antiguo.


Notas:
Algo interesante en esta versión es que se han agregado palabras clave para la llamada de línea de comandos de FoxBin2Prg que permiten no requerir más de los scripts vbs que se usaban para poder procesar directorios.
Se puede crear 3 accesos directos de FoxBin2Prg.exe y moverlos a la carpeta "SendTo" de su perfil de usuario Windows, para poder "enviar" el archivo elegido (pjx,pj2,etc) a la opción seleccionada, y así hacer conversiones al vuelo, luego puede renombrar y modificar esos accesos directos como sigue (asegúrese de que puede ver las extensiones del sistema):

Nombre------------------------  Click-Derecho/Propiedades/destino----------
FoxBin2Prg - Binary2Text.lnk    <ruta>\foxbin2prg.exe "BIN2PRG-SHOWMSG"
FoxBin2Prg - Text2Binary.lnk    <ruta>\foxbin2prg.exe "PRG2BIN-SHOWMSG"
FoxBin2Prg.lnk                  <ruta>\foxbin2prg.exe "INTERACTIVE-SHOWMSG"

La última opción incluso puede sustituir a las otras dos, ya que al procesar un directorio preguntará qué tipo de conversión se desea realizar, lo que permite realizar todas las operaciones posibles con un solo acceso directo.


Como actualizar el FoxBin2Prg existente:Con descargar el zip y reemplazar los archivos en el sitio que los hayan puesto antes es suficiente.


Link  de descarga:
https://vfpx.codeplex.com/releases/view/116407


 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!

Nueva versión v1.19.38 de FoxBin2Prg (novedades y mejoras)

FoxBin2Prg es un programa pensado para ser utilizado con herramientas SCM (Administradores de Control de Código Fuente, como VSS, CVS, SVN) y herramientas DVCS (como Git, Mercurial, Plastic, and others), o como programa independiente, para hacer operaciones de Diff (ver diferencias) y Merge (mezclar cambios), que pretende sustituir a SccText(X) y TwoFox y mejorar sus funcionalidades, generando versiones de texto estilo-PRG que permiten recrear el binario original.

Está liberada la versión v1.19.38 de FoxBin2Prg con los siguientes cambios:

  • Nuevo: Agregada posibilidad de usar directamente FoxBin2Prg para las conversiones "Bin2Prg" y "Prg2Bin" desde el explorador de archivos, y evitar el uso de scripts vbs, que en ciertas circunstancias pueden dar problemas o no estar permitidos por el departamento de IT. (Francisco Prieto).
    • La ejecución de vbs (Visual Basic Script) a veces puede dar algunos problemas, como por ejemplo, requerir una confirmación extra del sistema de seguridad de Windows (UAC) o incluso puede que esté inhabilitada su ejecución por el Departamento de IT de la Emprasa. Por este motivo es que en esta versión se ha agregado una parametrización especial para poner en el propio shortcut (atajo o acceso directo) para poder invocar directamente a foxbin2prg.exe. Estos 3 accesos directos a foxbin2prg.exe pueden sustituir a los que se usaban para los scripts vbs, según se explica en el README.txt, y además tiene la ventaja de que el proceso de archivos es más homogéneo y simplificado, al realizarse todo en el mismo paso.
  • Mejora: Mejorado el soporte multilingüe mediante 3 sistemas: 1=Automático según VERSION(3); 2=Por parámetro, usando el nuevo método ChangeLanguage(); 3=Mediante la lectura del archivo foxbin2prg.h
    • Desde ahora la selección de idioma de los mensajes y Logs es automática, mediante la consulta de la función Version(3) de VFP. Esto funcionará bien con el EXE, pero probablemente no lo haga con la versión PRG, ya que esta usa el IDE que está en Inglés, así que la mayoría no tendrá de qué preocuparse y ya no hará falta recompilar. Quienes usen la versión PRG igualmente pueden usar el nuevo seteo "Language: ES" en foxbin2prg.cfg, o cualquiera de los 4 lenguajes soportados (ES, EN, FR, DE)
  • Mejora: Optimización para no reprocesar innecesariamente archivos cuando se usa UseClassPerFile:1
    • En la versión anterior se reprocesaba el vcx/scx tantas veces como archivos file.class.tx2 hubiera. Ahora se optimizó para que solamente lo haga una vez.
  • Nuevo: Agregada la detección de métodos duplicados para notificar casos de corrupción (Álvaro Castrillón)
    • Esta fue una solicitud que por suerte no fue muy compleja de implementar y que va en la línea de lo que considero algo muy útil en un software, que es la posibilidad de diagnosticar y ayudar a resolver problemas, en este caso, de duplicidad de métodos, cosa que puede ocurrir cuando los archivos originales (vcx/scx) están corruptos. Esta corrupción en particular no produce cuelgues en general, lo que la hace más peligrosa, ya que se ejecuta siempre uno de los métodos duplicados, que no necesariamente coincide con lo que se modifique. En un caso extremo puede observarse que se cambia código en un método, pero luego ese código nunca se ejecuta y siguiendo la ejecución con el depurador paso a paso se puede ver como se ejecuta el antiguo código. Ahora esta corrupción queda expuesta y se notifica mediante un log de errores, indicando los números de línea del sc2/vc2 donde se encontraron las duplicidades.



Como actualizar el FoxBin2Prg existente:Con descargar el zip y reemplazar los archivos en el sitio que los hayan puesto antes es suficiente.


Link  de descarga:
https://vfpx.codeplex.com/releases/view/116407


 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!

Nueva versión v1.19.37 de FoxBin2Prg (novedades, bug fixes, mejoras... :-)

FoxBin2Prg es un programa pensado para ser utilizado con herramientas SCM (Administradores de Control de Código Fuente, como VSS, CVS, SVN) y herramientas DVCS (como Git, Mercurial, Plastic, and others), o como programa independiente, para hacer operaciones de Diff (ver diferencias) y Merge (mezclar cambios), que pretende sustituir a SccText(X) y TwoFox y mejorar sus funcionalidades, generando versiones de texto estilo-PRG que permiten recrear el binario original.

Está liberada la versión v1.19.37 de FoxBin2Prg con los siguientes cambios:

  • Nuevo: Separación de clases por archivo (Ryan Harris/Lutz Scheffler/Álvaro Castrillón). Esta ha sido una petición de varias personas, que querían poder trabajar con las clases de una librería VCX por separado, así que ahora se puede. Solo hay que poner UseClassPerFile:1 en el foxbin2prg.cfg.
  • Bug Fix dbf: "Error 1903, String is too long to fit" para DBF_Conversion_Support:4 con DBFs grandes (edyshor). Cuando el tamaño de la tabla a exportar supera cierto límite, aparecía este error. En esta versión se soluciona el problema y se incrementa la velocidad de exportación de forma notable.
  • Bug Fix scx/vcx: Algunas propiedades a veces tomaban la descripción de otras propiedades similares. Cuando hay propiedades cuyo nombre es igual al comienzo de otras (prop -> propiedad) podía pasar que una de las propiedades tome la descripción de la otra.
  • Bug Fix scx/vcx: Las propiedades "Protected" y "Hidden" no siempre estaban ordenadas alfabéticamente. Este ordenamiento alfabético es para minimizar diferencias, aunque inicialmente puede que en varios archivos se vea esto en la próxima conversión.
  • Nuevo: Nuevo parámetro ClearDBFLastUpdate para evitar diferencias por este dato (edyshor). Cuando se abre una tabla, y aunque no se actualice, hay veces que se actualiza el campo interno LastUpdate que se puede consultar con LUPDATE(). Desde ahora esa fecha no se guarda en el db2, y solo se genera en el dbf, en el caso que esté habilitada su regeneración. Esto disminuye bastante las diferencias en los db2.
  • Nuevo: AutoFix para propiedades partidas debido a ediciones manuales del scx/vcx. Debido a ediciones manuales de algunos usuarios, pueden quedar propiedades partidas al medio por un "Enter" sin querer. En esta versión se agrega un algoritmo para volver a unir esas propiedades. Dicho sea se paso, no se deberían modificar los memos de los scx/vcx a mano.
  • Mejora: Las configuraciones de foxbin2prg.cfg no permiten comentarios && al final (edyshor). En las versiones anteriores, si había comentarios && a la derecha del valor, no se reconocía el valor, ahora se reconoce bien aunque haya comentarios &&.
  • Mejora: Agregado control para detectar reportes no compatibles con VFP 9. Ya exitía esta validación para los menús, pero estaba faltando para los reportes, así se puede identificar más fácilmente si tenemos componentes de versiones anteriores sin migrar en VFP 9.
  • Mejora: Agregada cancelación del proceso con tecla Esc. Mientras se están procesando archivos, ahora es posible cancelar la ejecución con la tecla Esc, lo que mostrará un error 1799 de Conversión Cancelada.
  • Mejora: Mejora de los indicadores de proceso para que sean más fluidos. El indicador de proceso ahora tiene 2 barras, una para el avance de los archivos y la otra para el avance interno del archivo.
  • Mejora: Varias optimizaciones para mejorar la velocidad proceso, principalmente en los vcx/scx y DBFs que exporten datos. Para mi asombro he descubierto que hay veces en las que el manejo de archivos a bajo nivel es mucho más rápido que trabajar con variables de memoria, al punto de que una librería VCX que tardaba de 6 a 10 minutos en procesarse, ahora tarda algo más de 2 minutos.



Como actualizar el FoxBin2Prg existente:Con descargar el zip y reemplazar los archivos en el sitio que los hayan puesto antes es suficiente.


Link  de descarga:
https://vfpx.codeplex.com/releases/view/116407


 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!

Nueva versión v1.19.36 de FoxBin2Prg (bug fix, mejora)

FoxBin2Prg es un programa pensado para ser utilizado con herramientas SCM (Administradores de Control de Código Fuente, como VSS, CVS, SVN) y herramientas DVCS (como Git, Mercurial, Plastic, and others), o como programa independiente, para hacer operaciones de Diff (ver diferencias) y Merge (mezclar cambios), que pretende sustituir a SccText(X) y TwoFox y mejorar sus funcionalidades, generando versiones de texto estilo-PRG que permiten recrear el binario original.

Está liberada la versión v1.19.36 de FoxBin2Prg con los siguientes cambios:

  • Bug Fix mnx: Al generar el mn2 el identificador queda vacío (bug introducido en v1.19.35)
  • Mejora: Nuevo script "VFP9_FoxBin2Prg.vbs" para el menú "SendTo" (Enviar A), que reemplaza a FoxBin2Prg.exe en este menú y agrega un mensaje de estado del proceso.


Como actualizar el FoxBin2Prg existente:Con descargar el zip y reemplazar los archivos en el sitio que los hayan puesto antes es suficiente.


Link  de descarga:
https://vfpx.codeplex.com/releases/view/116407


 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!

Nueva versión v1.19.35 de FoxBin2Prg (mejora)

FoxBin2Prg es un programa pensado para ser utilizado con herramientas SCM (Administradores de Control de Código Fuente, como VSS, CVS, SVN) y herramientas DVCS (como Git, Mercurial, Plastic, and others), o como programa independiente, para hacer operaciones de Diff (ver diferencias) y Merge (mezclar cambios), que pretende sustituir a SccText(X) y TwoFox y mejorar sus funcionalidades, generando versiones de texto estilo-PRG que permiten recrear el binario original.

Está liberada la versión v1.19.35 de FoxBin2Prg con los siguientes cambios:

  • Mejora: Generar siempre el mismo Timestamp y UniqueID para los binarios minimizaría los cambios al regenerarlos (Marcio Gomez G.). Hasta ahora, al regenerar los binarios se regeneraban también los campos Timestamp con la fecha/hora del momento de generación y UniqueID con el SYS(2015), lo que forzaba diferencias aunque no las hubiera. Con la mejora propuesta, al Timestamp se le pone un valor fijo y al UniqueID se le pone un consecutivo, con lo que si no hay cambios, tampoco variarán estos datos (se generarán siempre igual), por lo que los binarios serán iguales y no se mostrarán como si tuvieran cambios.


Como actualizar el FoxBin2Prg existente:Con descargar el zip y reemplazar los archivos en el sitio que los hayan puesto antes es suficiente.


Link  de descarga:
https://vfpx.codeplex.com/releases/view/116407


 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!

Nueva versión v1.19.34 de FoxBin2Prg (arreglo de bug)

FoxBin2Prg es un programa pensado para ser utilizado con herramientas SCM (Administradores de Control de Código Fuente, como VSS, CVS, SVN) y herramientas DVCS (como Git, Mercurial, Plastic, and others), o como programa independiente, para hacer operaciones de Diff (ver diferencias) y Merge (mezclar cambios), que pretende sustituir a SccText(X) y TwoFox y mejorar sus funcionalidades, generando versiones de texto estilo-PRG que permiten recrear el binario original.

Está liberada la versión v1.19.34 de FoxBin2Prg con los siguientes cambios:

  • Bug: Si se ejecuta FoxBin2Prg desde ventana de comandos FoxPro para un proyecto y hay algún archivo abierto o cacheado, se produce un error al intentar capitalizar el archivo de entrada (Jim Nelson).


Como actualizar el FoxBin2Prg existente:Con descargar el zip y reemplazar los archivos en el sitio que los hayan puesto antes es suficiente.


Link  de descarga:
https://vfpx.codeplex.com/releases/view/116407


 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!