Recientemente me he convertido de svn. Mi servidor está bajo Windows (no me culpen, no fue mi elección :}
Creé un repositorio con dos ramas “maestro” y “estable”.
En mi servidor, quiero obtener archivos de la rama estable.
He hecho:
git clone git://url/.git src
cd src
git checkout --track -b stable origin/stable
Anteriormente tenía un script .bat
cd my_repo_dir
svn update
echo APPLICATION_STAGE = 'production' > conf\__init__.py
net stop apache2.2
net start apache2.2
y funcionó, ahora con git
cd my_repo_dir
git pull
echo APPLICATION_STAGE = 'production' > conf\__init__.py
net stop apache2.2
net start apache2.2
nada se ejecuta después de git pull, ya sea que sea exitoso o esté actualizado. Simplemente sale para avisar sin previo aviso.
Pensé en ganchos. Yo he creado:
.git/hooks/post-receive
.git/hooks/post-update
ambos archivos con el mismo contenido:
echo APPLICATION_STAGE = 'production' > conf\__init__.py
net stop apache2.2
net start apache2.2
y no, tampoco se está ejecutando… Tal vez me falta la línea de declaración interpretada (#!/bin/sh en *nix) pero no estoy seguro de qué es en Windows…