Diferencia entre revisiones de «De svn a git»
De Wiki Asqueados
(Página creada con 'Proceso que he seguido para realizar el git de las fichas == Crear repositorio a través de svn == * Instalar git-svn. * Crear fichero authors.txt con una correspondencia ent...') |
m (Un poco de formato) |
||
Línea 6: | Línea 6: | ||
* Instalar git-svn. | * Instalar git-svn. | ||
* Crear fichero authors.txt con una correspondencia entre usuarios svn y usuarios git: | * Crear fichero authors.txt con una correspondencia entre usuarios svn y usuarios git: | ||
− | + | <pre> | |
inconexo=inconexo <inconexo@maquina.local> | inconexo=inconexo <inconexo@maquina.local> | ||
− | + | </pre> | |
* Crear el repositorio con: | * Crear el repositorio con: | ||
Línea 41: | Línea 41: | ||
* Crear script de actualización | * Crear script de actualización | ||
jdr.localgit/update.sh | jdr.localgit/update.sh | ||
− | + | <pre> | |
#!/bin/bash | #!/bin/bash | ||
Línea 58: | Línea 58: | ||
GIT_DIR="$old_GIT_DIR" | GIT_DIR="$old_GIT_DIR" | ||
− | + | </pre> | |
* Añadir el script al hook de post-receive | * Añadir el script al hook de post-receive | ||
jdr.git/hooks/post-receive | jdr.git/hooks/post-receive | ||
− | + | <pre> | |
#!/bin/bash | #!/bin/bash | ||
/<path>/jdr.localgit/update.sh | /<path>/jdr.localgit/update.sh | ||
− | + | </pre> | |
* Enlazar los ficheros desde el directorio web deseado. | * Enlazar los ficheros desde el directorio web deseado. | ||
Así, cuando se empujen cambios al servidor, la copia se actualizará y serán directamente visibles en el servidor. | Así, cuando se empujen cambios al servidor, la copia se actualizará y serán directamente visibles en el servidor. |
Revisión del 15:17 11 nov 2011
Proceso que he seguido para realizar el git de las fichas
Contenido
Crear repositorio a través de svn
- Instalar git-svn.
- Crear fichero authors.txt con una correspondencia entre usuarios svn y usuarios git:
inconexo=inconexo <inconexo@maquina.local>
- Crear el repositorio con:
git svn clone --prefix=svn/ --stdlayout --authors-file=authors.txt http://localhost/svn/jdr -s git-jdr -T/
- Actualizar el repositorio svn con los cambios que hagamos en git (si queremos por algún motivo seguir manteniéndolo actualizado):
git svn dcommit
Crear repositorios en el servidor
Necesitamos dos repositorios para el invento: uno contra el que hacemos el push, que no tendrá copia de trabajo, y otro que sí tenga copia de trabajo y tire del primero.
Repositorio sin copia de trabajo
- Crear directorio jdr.git en el sevidor
- Iniciar el repositorio sin copia de trabajo
user@server:jdr.git# git --bare init
- Crear el destino remoto en el repositorio local:
user@local:git-jdr$ git remote add server.net user@server.net:jdr.git
- Empujar el repositorio a la rama master del servidor
user@local:git-jdr$ git push server.net
Repositorio que sirve los datos
Todo esto ejecutar en el servidor remoto
- Clonar el repositorio
git clone jdr.git jdr.localgit
- Crear script de actualización
jdr.localgit/update.sh
#!/bin/bash dir=`dirname "$0"` old_GIT_DIR="$GIT_DIR" unset GIT_DIR cd "$dir" git pull if [ $? == 0 ] then echo "Repositorio $dir actualizado con éxito" else echo "ERROR: No se ha podido actualizar el repositorio $dir" fi GIT_DIR="$old_GIT_DIR"
- Añadir el script al hook de post-receive
jdr.git/hooks/post-receive
#!/bin/bash /<path>/jdr.localgit/update.sh
- Enlazar los ficheros desde el directorio web deseado.
Así, cuando se empujen cambios al servidor, la copia se actualizará y serán directamente visibles en el servidor.