git

Crear un nuevo proyecto compartido en git

Tags: 

Aquí en la oficina hemos estado utilizando git desde hace ya algunos meses. Una de las cosas que nos daba más flojera hacer era crear repositorios públicos que pudiéramos compartir varios compañeros aquí en la oficina. Los pasos que vienen en el Manual de git para crear un repositorio público son algo tediosos, porque involucran clonar tu repositorio localmente y después copiarlo a la ubicación pública, lo que puede ser muy pero muy tardado si tu repositorio es grande y tu ubicación pública está en otro servidor.

Hace poco, en github encontramos una alternativa diferente para hacer esto, en donde primero creas el repositorio vacío en tu ubicación pública y después "empujas" tu proyecto desde git.

  1. Crear una carpeta vacía para tu proyecto en la ubicación pública

    tu@public:$ cd /var/cache/git
    tu@public:$ mkdir my-new-repo.git
    
  2. En esa carpeta creas un repositorio vacío (bare) de git

    tu@public:$ cd my-new-repo.git
    tu@public:$ git --bare init
    
  3. Y finalmente, desde tu repositorio local creas un canal remoto para git y empujas tu proyecto:

    tu@local:$ cd existing_git_repo
    tu@local:$ git remote add origin tu@publico:/var/cache/git/my-new-repo.git
    tu@local:$ git push origin master
    

Y eso es todo, ahora git copiará todos tus archivos a través de la red de manera más eficiente que si utilizaras ftp o scp. Enjoy!

Backups de MySQL con git

Brian Aker, desarrollador de mysql, sugirió una manera "inteligente o extraña" de hacer backups de tu base de datos utilizando mercurial (un sistema control de versiones distribuido).

Nosotros en axai veníamos utilizando un sistema parecido, con la diferencia de que nosotros utilizamos git en vez de mercurial y que tampoco conocíamos la opción --tab del comando mysqldump. Esta opción es la que logra hacer que este método para backups sea todavía más útil, ya que al revisar la historia de tu base de datos podrás ver exactamente que cambios a sufrido con el paso del tiempo.

Este método de backups en resumidas cuentas tiene las siguientes ventajas:

  • Buscar en tu historial de backups
  • Ver los cambios entre una fecha y otra
  • Hacer restauraciones parciales (de algunas tablas solamente)
  • Ocupar muy poco espacio en tu disco duro
  • Permitirte trasladar ese historial de backups de manera sencilla de una máquina a otra

Entonces, vamos a ver cómo se hace. Para crear los respaldos de tu base de datos utilizas los siguientes comandos:

$ mysqldump -u user --tab=/var/backup/dbname dbname $ cd /var/backup/dbname $ git-add . $ git-commit -m "automatic backup" $ git-push

El último comando es opcional, utilizalo sólo si tienes un repositorio remoto de git configurado.

Para restaurar este tipo de respaldos se utiliza el comando mysqlimport:

$ mysqladmin -u user create dbname $ cat /var/backups/dbname/.sql | mysql dbname # crea las tablas $ mysqlimport -u user dbname --local /var/backups/dbname/.txt # carga los datos

Disfruten ;-).

CVS desde git, y como mantenerlos sincronizados

Llevo algún rato intentando rastrear de manera eficaz algunos módulos de drupal que están en desarrollo: spaces y context.

Lamentablemente, en drupal todavía usan CVS para administrar el código. El código que usan para administrar los projectos en drupal.org (releases, registro de bugs, descargas, etc) está basado en CVS, y aunque poco a poco avanzan para hacerlo más independiente de CVS y poder utilizar subversion o cualquier otra cosa, pues es algo que va a tomar todavía algo de tiempo.

Así que la solución que más me agrada es seguir el avance de estos repositorios utilizando git ;-). Este blog te dice cómo hacerlo en inglés. Los pasos son simples. El comando de git-cvsimport actúa en la carpeta en la que estás ubicado a menos que utilices la opción de -C para decirle a qué carpeta quieres importar, así que crea una carpeta para tu repositorio antes de empezar.

$ mkdir spaces $ cd spaces $ git-cvsimport -d:pserver:anonymous@cvs.drupal.org:/cvs/drupal-contrib -k -v -r drupal-contrib contributions/modules/spaces

  • La opción de -d indica donde esta el repositorio de CVS
  • la opción de -k es para evitar cambiar los keywords de CVS y es opcional aunque recomendada (al menos si ves el manpage de git-cvsimport)
  • -v para que te imprima lo que está haciendo (si no, funcionará como cualquier comando de UNIX que no imprime nada a menos que haya un error)
  • la opción de -r es para que utilice un nombre en tu repositorio de git diferente a origin para este repositorio remoto, puedes decidir no utilizarla
  • y finalmente le tienes que decir qué módulo de CVS quieres traerte

Para mantener actualizado este repositorio de git no hay más que correr este mismo comando en la misma carpeta y lixto!

Compilando git en ubuntu 7.10

Git es un sistema de control de versiones distribuido. Es decir, un programa tipo subversion o CVS pero que funciona también cuando no estás conectado a internet.

En Ubuntu 7.10 puedes instalar git usando apt-get. Lamentablemente la versión que instala es la 1.5.2 que ya es algo viejita. Actualmente git está en la versión 1.5.4 que trae bastantes mejoras, particularmente las que te permiten manejar submódulos en git (introducidas desde la versión 1.5.3).

Para esto vamos a tener que compilar git, así que manos a la obra. Primero tenemos que obtener el código fuente de git de su página.

> wget http://kernel.org/pub/software/scm/git/git-1.5.4.1.tar.gz > tar -zxf git-1.5.4.1.tar.gz > cd git-1.5.4.1

Para compilar git se necesitan instalar algunas dependencias primero. La manera más sencilla de obtenerlas en ubuntu es con el comando:

> sudo apt-get build-dep git-core

En teoría, ahora puedes instalar git sin problemas, pero por alguna razón en mi computadora tuve algunos errores con dependencias relacionadas que no pudo encontrar el archivo sha.h y otras cosillas con traducciones de archivos .po (gettext). Así que tuve que instalar otros paquetes manualmante:

> sudo apt-get install libssl-dev gettext

Y listo, ahora puedes instalar git. Te recomiendo leer los archivos README e INSTALL de cualquier manera. Para instalar git para todos los usuarios:

> make prefix=/usr all doc > sudo make prefix=/usr install install-doc

Ahora puedes usar la última versión de git ;-). Pruébalo con.

> git --version > git config --global user.name "Your Name Comes Here" > git config --global user.email you@yourdomain.example.com

Si quieres aprender a usar git te recomiendo el manual de introducción y en general toda la documentación de la página de git.

Subscribe to RSS - git
Drupal theme by Kiwi Themes.