Mostrando entradas con la etiqueta merge substractivo. Mostrar todas las entradas
Mostrando entradas con la etiqueta merge substractivo. Mostrar todas las entradas

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


jueves, marzo 13, 2014

FoxPro 9 y PlasticSCM: Como deshacer un changeset sin borrarlo

Por: Fernando D. Bozzo

Hay ocasiones en las que necesitamos deshacer un changeset porque algo salió mal, y en esta situación tenemos 2 alternativas:

1) Borrar el changeset
2) Hacer un merge substractivo

Si bien en ambos casos podemos alcanzar el mismo objetivo, hay motivos para no eliminar un changeset y en su lugar hacer un merge substractivo:

  • Si nuestro repositorio está sincronizado con un repositorio externo como GitHub, BitBucket u otro y el changeset que queremos deshacer ya está sincronizado, no podemos borrarlo, porque en cuanto sincronicemos nuevamente se volverá a restablecer como estaba
  • Si el changeset que queremos deshacer no es el último, sino uno intermedio, puede ser contraproductivo tener que deshacer todos los changesets posteriores solo por este, además en esos changesets posteriores podría haber muchos cambios bien hechos y por ahi solo queremos deshacer una sola operación o cambio de archivo que se realizó en el changeset en cuestión
  • Si queremos preservar el historial de todo lo hecho y en algún caso queremos volver a realizar los cambios que ahora vamos a deshacer
  • Si el changeset lo queremos deshacer solo temporalmente, porque contiene un cambio sin terminar y haya que entregar una versión del software sin el mismo
Estos y otros motivos, son suficientes para hacer un merge substractivo.


¿Cómo se hace esto?


Muy fácil, se seleccionan dos changesets con el ratón (click en el changeset de la izquierda, y luego ctrl+click en el changeset de la derecha), luego un click-derecho en cualquiera de los dos changesets y se verán solo dos opciones:

- Merge Avanzado
- Mostrar diferencias entre changesets seleccionados

Con "Mostrar diferencias" podemos ver cuál es la situación que se deshará. Si hay archivos eliminados, entonces se mostrarán, y si hay cambios hechos, también.





Con "Merge Avanzado" se abre un segundo menú donde una se las opciones es "Merge substractivo", se elige esta opción y luego se elige "Procesar merges":


Como se observa, lo que antes se mostraba como eliminado, ahora se volverá a agregar. Una vez procesado el merge estos cambios pasarán a ser Cambios Pendientes todavía sin confirmar, que en el Explorador de ramas se verá así:



El último paso, es comprobar visualmente en la vista de Cambios Pendientes de que es todo correcto, y confirmar los cambios haciendo checkin.

Nota:
En esta misma pantalla conviene confirmar si los tipos de archivo están siendo bien reconocidos por Plastic, como por ejemplo los archivos sc2, vc2, pj2, etc, que genera FoxBin2Prg (en este caso los 4 marcados), ya que podrían estar incorrectamente identificados como "bin" en vez de "txt". En el caso de haber archivos mal identificados, aquí podemos arreglarlo, haciendo click-derecho sobre el archivo de texto, eligiendo "Cambiar tipo de revisión" y luego "texto" (o binario, según corresponda), y luego sí procedemos al checkin. Esto mismo se puede hacer en la ventana de items.




Así se ve el merge substractivo una vez hecho el checkin:



Dejo aquí un video corto con el ejemplo completo.
http://youtu.be/G8QhIsPnQrQ


Hasta la próxima!