… a implementar los metadatos en GIT

Hace tiempo que quiero guardar la fecha de los archivos cuando se hacen los commits en GIT y que al hacer el checkout vuelva a restaurarlos.

Había encontrado un par de soluciones, entre ellas:

Pregunta en stackoverflow.com acerca de la misma inquietud, en donde se exponen algunas propuestas, hacer un script ad Hoc, Metastore (que ya está como caido) y git-cache-meta que parece funcionar
git-cache-meta

Que tiene varias contribuciones, entre ellas una de danny0838 con una adaptación para msysgit

Y para utilizarlo de manera automática encontré en la misma pregunta una forma de utilizarlo, el mismo danny0838 hizo una versión más ligera pero que utilizar Perl y depende de commandos *nix.

https://github.com/danny0838/git-store-meta

Lo que logré fue adaptar los hooks en pre-commit y post-checkout para que lanze el comando.

Falta mejorarlo para que cuando se clona el proyecto por primera vez, instale los hooks de manera automática y hace el –apply de los metadatos.

copiar_hooks_client_side.sh

#!/bin/sh

# Copia los hooks de un repositorio de hooks a la carpeta del proyecto GIT desde donde se llama.

echo "Copiando HOOKS de GIT-CACHE-META-MSYSGIT al proyecto $PWD"
cp /ruta-al-repo-de-hooks/git-cache-meta-msysgit.sh $PWD/.git/hooks/git-cache-meta-msysgit.sh
cp /ruta-al-repo-de-hooks/post-checkout $PWD/.git/hooks/post-checkout
cp /ruta-al-repo-de-hooks/pre-commit $PWD/.git/hooks/pre-commit

pre-commit

#!/bin/sh
# when running the hook, cwd is the top level of working tree

# store
echo "Almacenar metadatos de archivos en el repo ..."
sh $(dirname "$0")/git-cache-meta-msysgit.sh --store || exit 1

# remember to add the updated cache file
git add .git_cache_meta

post-checkout

#!/bin/sh
# when running the hook, cwd is the top level of working tree

sha_old=$1
sha_new=$2
change_br=$3

# apply metadata only when the HEAD is changed
if [ ${sha_new} != ${sha_old} ]; then
 echo "Recuperar metadatos de archivos ..."
 sh $(dirname "$0")/git-cache-meta-msysgit.sh --apply
fi

Nota: para saber sobre los directorios en script bash (

$PWD

http://unix.stackexchange.com/questions/188182/how-to-get-current-working-directory

 

TM / Desarrollo: perfil guardado

Ya logré guardar los datos en el localstorage del navegador utilizando el módulo jQuery-Storage-API

El proceso consiste en:

  1. Comprobar si existe un perfil guardado
  2. Si no existe mostrar el formulario de configuración de perfil
  3. Habilitar el envío de datos
  4. Procesar el formulario para obtener los datos y agregarlos al objeto que será guardado.
  5. Salvar en el localstorage.

 

… a hacer un script bash para armar proyectos

aunque de manera muy rudimentaria, automatiza el proceso de:

  • crear la carpeta
  • inicializar el repo git
  • crear el repo remoto y enlazarlo
  • copiar una estructura de carpetas y archivos básicos
  • hacer el primer commit y empujarlo al remoto

El script necesita como parámetro (por ahora) la carpeta donde alojar el proyecto.

Gracias a http://www.ibm.com/developerworks/library/l-bash-parameters/index.html

TF / Modulos: guardar archivo

 

javascript save file local – Buscar con Google – https://www.google.com.ar/search?q=javascript+save+file+local&client=tablet-android-samsung&sourceid=chrome-mobile&espv=1&ie=UTF-8
HTML5: FileSystem API – Create Files and Store Them Locally Using JavaScript and Webkit – noupe – http://www.noupe.com/design/html5-filesystem-api-create-files-store-locally-using-javascript-webkit.html
Loading, Editing, and Saving a Text File in HTML5 Using Javascript | This Could Be Better – https://thiscouldbebetter.wordpress.com/2012/12/18/loading-editing-and-saving-a-text-file-in-html5-using-javascrip/
eligrey/FileSaver.js: An HTML5 saveAs() FileSaver implementation – https://github.com/eligrey/FileSaver.js/
Saving a file with pure JS – https://codepen.io/davidelrizzo/pen/cxsGb