Mejores mensajes de los commits en GIT

Es importante la calidad de los mensajes, para cuidar la ortografía y la longitud de líneas prefiero usar vim, por lo que veremos a continuación.

Lo instalamos en Ubuntu:

sudo apt-get install vim

Le decimos a Git que lo use:

git config --global core.editor "vim"

Creamos archivo “~/.vimrc” con lo siguiente:

autocmd Filetype gitcommit setlocal spell textwidth=72

Al hacer un commit, no usar opción -m para que lance la ventana de vim:

git commit

vim inicio

Vim tiene dos modos: el de edición y el de comando.

Al entrar a vim se estará en modo de comando por lo que al escribir algo o dar enter no se reflejará en pantalla, para ello hay que pasarse al modo texto presionando una sola vez la tecla “i”, esto hará que se pueda escribir normalmente, para saber que lo hicimos bien, podemos ver que hasta abajo dice “– INSERTAR –“.

vim insertar

Escribimos el texto del commit, por la configuración que agregamos vim automáticamente pasará a una nueva línea cuando el mensaje sea demasiado largo, además de revisar que no tengamos errores de ortografía.

ortografia

Para salir y guardar, en modo comando escribir:

:wq

Para cancelar:

:q!

Si usan español en los mensajes y no les corrige bien la ortografía, pasen al modo de comando con la tecla “ESC” y escriban el siguiente comando:

:setlocal spell spelllang=es

Les preguntará si desean crear un directorio, y si desean descargar los diccionarios, a todo digan que sí:

descargar corrector ortografia

Si siempre usan español, pueden cambiarlo en el archivo ~/.vimrc:

autocmd Filetype gitcommit setlocal spell spelllang=es textwidth=72

Recursos:
How do I make git use the editor of my choice for commits?
5 Useful Tips For A Better Commit Message
Vim en dos minutos

Cómo instalar gitolite en Ubuntu 12.10

Gitolite te permite hospedar repositorios git en un servidor central, con un fino control de acceso y muchas (¡muchas!) características poderosas.

Gitolite — Hospeda repositorios git en un servidor Ubuntu

Si deseas habilitar un servidor como repositorio central para tus proyectos git y de esa forma facilitar la colaboración con varias personas sin necesidad de recurrir a algo como github, entonces gitolite es para ti.

Escenario

  • Servidor: donde queremos hospedar los repositorios git, aquí se va a instalar gitolite.
    El URL del servidor de ejemplo es: servidor.com
    (también puedes usar una dirección IP)
    El usuario de ejemplo con privilegios de administrador es: admin
  • Cliente: la máquina local desde donde se van a administrar los usuarios, los repositorios y los accesos.

En el cliente

En tu máquina debes tener disponible tu llave pública en ~/.ssh/id_rsa.pub, si no es así genérala con:

ssh-keygen

Ya que cuentes con la llave pública ~/.ssh/id_rsa.pub, cópiala a tu servidor, la vas necesitar para la configuración inicial de gitolite.

Para copiarla puedes usar scp. El siguiente comando copiará nuestra llave pública al $HOME de la cuenta admin en el servidor, con el nombre de admin.pub:

scp ~/.ssh/id_rsa.pub admin@servidor.com:/home/admin/admin.pub

Sustituye los datos del ejemplo por los tuyos donde sea necesario.

En el servidor

Inicia sesión en el servidor con una cuenta que pueda usar sudo (en nuestro caso particular es admin):

ssh admin@servidor.com
Si sólo tienes la cuenta de root para administrar tu servidor, te recomiendo que leas esto: Securing Your Server

Instala git usando esta guía:
Cómo compilar e instalar git en Ubuntu desde código fuente

Después crea un usuario llamado git que va a fungir como el administrador de los repositorios:

sudo adduser 
    --system 
    --shell /bin/bash 
    --gecos 'git version control' 
    --group 
    --disabled-password 
    --home /home/git 
    git
No necesita contraseña ya que no pretendemos iniciar sesión con él directamente.

Accede al usuario git y ve a su $HOME:

sudo su git
cd

Asegúrate de que ~/.ssh/authorized_keys está vacío o no existe (para el usuario git).

Copia el archivo /home/admin/admin.pub a /home/git/admin.pub:

cp /home/admin/admin.pub $HOME

Ejecuta los siguientes comandos:

git clone git://github.com/sitaramc/gitolite
mkdir -p $HOME/bin
gitolite/install -to $HOME/bin
echo "PATH=$HOME/bin:$PATH" > ~/.bashrc
source ~/.bashrc
gitolite setup -pk admin.pub

Listo, cierra la sesión del usuario git y después termina la del usuario admin.

Agregar usuarios y repositorios desde la máquina cliente

De regreso en tu máquina local, ahora vas a ver cómo crear repositorios y autorizar usuarios para que operen con ellos.

En gitolite, los usuarios, repositorios y reglas de acceso se administran haciendo cambios a un repositorio especial llamado gitolite-admin y surten efecto al subirlos (con un push) al servidor.

No debes agregar de forma manual en el servidor repositorios o usuarios.
Utiliza siempre el repositorio local para ese propósito.

Para administrar tu instalación de gitolite, clona el repositorio gitolite-admin a tu máquina:

git clone git@servidor.com:gitolite-admin.git
Si el comando anterior te solicita una contraseña, algo salió mal. Revisa los pasos con cuidado.

Ahora, si le das cd gitolite-admin, verás dos subdirectorios en él: conf y keydir

Para agregar a los usuarios juan, maria y pepe, obtén sus llaves públicas y mételas en keydir como juan.pub, maria.pub y pepe.pub respectivamente.

Para agregar un repositorio nuevo llamado foo y dar diferentes niveles de acceso a estos usuarios, modifica el archivo: conf/gitolite.conf, ejemplo:

repo gitolite-admin
    RW+     =   admin
 
repo foo
    RW+         =   juan
    RW          =   maria
    R           =   pepe

Después de hacer estos cambios en el cliente, hazlos efectivos en el servidor con:

git add conf
git add keydir
git commit -m 'Se creó el repositorio foo, se dio acceso a juan, maria y pepe'
git push

Cuando finalice el push, gitolite agregará los nuevos usuarios a /home/git/.ssh/authorized_keys en el servidor, así como también creará un nuevo repositorio vacío llamado foo.

Subir un repositorio existente al servidor

Para poner un repositorio local en el servidor, para que otras personas —a las que les des acceso— lo puedan clonar y trabajar, debes primero crear un espacio para él.

Esto lo haces modificando el archivo gitolite-admin/conf/gitolite.conf como se mostró arriba, haz commit de los cambios, y súbelos con push.

Después, entra al directorio del repositorio local en cuestión y teclea:

git remote rm origin
git remote add origin git@servidor.com:mi-nuevo-repositorio.git
git push origin master

Listo, ahora tu repositorio local ha sido clonado al servidor y otros usuarios pueden tener acceso a él con:

git clone git@servidor.com:mi-nuevo-repositorio.git

Más información

Para conocer más sobre las reglas de acceso y otras características de gitolite, recomiendo leer el README del proyecto y también la sección Git on the Server – Gitolite del git book.

Referencias

Setting up a gitolite server in Ubuntu

Cómo compilar e instalar git en Ubuntu 15.10 desde código fuente

Unos artículos atrás había comentado ya, un poco acerca de git y cuan grandioso es. 🙂 Si te despertó la curiosidad y deseas probar, enseguida viene la guía de cómo instalarlo desde los repositorios o a partir del código fuente.

Quiero aclarar que no me encanta estar compilando todo lo que instalo — de lo contrario estaría usando Gentoo jeje — pero, desgraciadamente los repositorios de Ubuntu no se mantienen muy al día con todos los paquetes que manejan, pero a cambio recibes actualizaciones automáticas.

El procedimiento para hacernos con la versión más reciente de git es descargar el código fuente, descomprimir el archivo, instalar las dependencias necesarias para compilarlo, compilar el código fuente e instalar.

Al momento de editar este artículo, la última versión disponible era la 1.8.2.2
Revisa cuál es la más reciente aquí.

Instalación

Desde los repositorios de Ubuntu

Abre una terminal y teclea:

sudo apt-get install git

Listo, ya puedes usar git. Si prefieres instalarlo a mano, lee a continuación.

Desde código fuente

Abre una terminal, ingresa al directorio en donde se va a descargar el código fuente de git (por ejemplo ~/tmp), luego teclea lo siguiente:

  1. wget http://git-core.googlecode.com/files/git-1.8.2.2.tar.gz
  2. tar -xzvf git-1.8.2.2.tar.gz
  3. sudo apt-get build-dep git
  4. sudo apt-get install libssl-dev
  5. cd git-1.8.2.2
  6. make prefix=/usr/local all doc
  7. sudo make prefix=/usr/local install install-doc

Listo, para probar tu instalación teclea esto:

git --version

Debe contestarte con un: git version 1.8.2.2

Configuración

Es recomendable ejecutar los siguientes comandos para propósitos de identificación. Estos datos serán utilizados para marcar los commits que realices.

git config --global user.name "Pon aquí tu nombre"
git config --global user.email "pon@aqui.tu.correo"

Para tener texto en color:

git config --global color.ui "auto"

Para habilitar la detección automática del número de hilos a usar al empacar repositorios (bueno para computadoras multi-CPU o multi-núcleo):

git config --global pack.threads "0"

Aquí algunos alias que tengo dados de alta en mi ~/.gitconfig, ayudan a teclear menos en la terminal:

[alias]
    l = log --oneline --decorate --graph
    co = checkout
    ci = commit
    man = help
    h = help
    a = add
    f = fetch
    d = diff
    dc = diff --cached
    dt = difftool
    dtc = difftool --cached
    ds = diff --stat
    dsc = diff --stat --cached
    s = status --short --branch
    b = branch

Actualización

Para actualizar a una versión más reciente, sólo descarga el archivo y realiza los pasos descritos arriba: descomprime, compila e instala.

Si deseas actualizar a la versión en desarrollo, descarga el código fuente directamente desde github. Abre una terminal y teclea:

git clone git://github.com/git/git.git

Compila e instala con el procedimiento descrito arriba.

Si lo instalaste desde los repositorios, las actualizaciones te aparecerán en la aplicación de Actualización de software de Ubuntu.

GitHub Social Code Hosting

Si tienes un proyecto open source y quieres un servicio de hospedaje de código y control de versiones premium sin pagar un centavo, prueba con GitHub.
También cuentan con soporte para proyectos privados en planes.

Tutoriales

Cómo cambiar el editor por defecto que usa git

[singlepic=522,120,,,left]

Si usas git en Ubuntu te habrás dado cuenta que al hacer un commit, éste invoca al poderoso editor vi para introducir el texto del mensaje (si es que no lo haces en la misma línea de comandos con -m).

Si no estás acostumbrado a usar vi, puede ser frustrante.

El editor usado para editar el mensaje del commit será elegido de la variable de ambiente GIT_EDITOR, de la variable de configuración core.editor, de la variable de ambiente VISUAL o de la variable de ambiente EDITOR (en ese orden).

Así que si quieres por ejemplo que mejor se dispare el nano, necesitas definir la variable de ambiente en tu ~/.bashrc de la siguiente manera:

  1. export EDITOR=nano

Referencias

replace vim with mate as default text editor

Rubytris en GitHub

[singlepic=675,,,,left]

Sólo para informarles que mi proyecto ya tiene un hogar en GitHub 😀

Rubytris (¡con nuevo nombre!)

 
Este fin de semana refactoricé un buen de código, aunque visualmente no cambió mucho, por dentro es básicamente otro. 🙂

Si usan git y lo quieren probar, solo deben hacer un:

  1. git clone git://github.com/lobo-tuerto/rubytris.git

El siguiente fin de semana le volveré a meter mano, creo que es una buena idea terminar bien este proyecto antes de saltarme a otro. 😉

Cómo compilar e instalar git en Ubuntu 11.04

¡Esta guía está desactualizada!
Checa la versión más reciente aquí.

[singlepic=545,120,,,left]Unos artículos atrás les había comentado ya, un poco acerca de git y cuan grandioso que es. 🙂 Si les despertó la curiosidad y desean probarlo, enseguida viene la guía de como instalarlo en tu sistema desde código fuente.

Y aclaro que no es que me encante estar compilando todo lo que instalo —o estaría usando Gentoo— pero desgraciadamente los repositorios de Ubuntu no se mantienen muy al día con las versiones de todos los paquetes que manejan.

El procedimiento para hacernos con la versión más reciente de git es descargar el código fuente, descomprimir el archivo, instalar las dependencias para compilar el código fuente, configurar y llevar a cabo la instalación.

Al momento de editar este artículo, la última versión disponible era la 1.7.4. Revisa cuál es la más reciente aquí.

Instalación

Abre una terminal, ingresa al directorio en donde se va a descargar el código fuente de git, luego teclea lo siguiente:

  1. wget http://kernel.org/pub/software/scm/git/git-1.7.4.tar.bz2
  2. tar -xjvf git-1.7.4.tar.bz2
  3. cd git-1.7.4
  4. sudo apt-get build-dep git
  5. sudo apt-get install libssl-dev
  6. make prefix=/usr/local all doc
  7. sudo make prefix=/usr/local install install-doc

Listo, para probar tu instalación teclea esto:

  1. git --version

Debe contestarte con un git version 1.6.0.

Es recomendable ejecutar los siguientes comandos para propósitos de identificación.

  1. git config --global user.name "Pon aquí tu nombre"
  2. git config --global user.email "pon@aqui.tu.correo"

Para tener texto en color:

  1. git config --global color.ui "auto"

Para habilitar la autodetección del número de hilos a usar al empacar los repositorios (bueno para computadoras multi-CPU o multi-núcleo):

  1. git config --global pack.threads "0"

GitHub Social Code Hosting

Si tienes un proyecto open source y quieres un servicio de hospedaje de código y control de versiones premium sin pagar un centavo, prueba con GitHub.
Aunque si lo tuyo son los proyectos privados, también tienen buenos planes.

Git con git

Ya que cuentes con git podrás mantenerte actualizado fácilmente.
Descarga el código fuente directamente desde su repositorio:

  1. git clone git://git.kernel.org/pub/scm/git/git.git

Compila e instala con el procedimiento descrito arriba.

Acostumbro usar las versiones edge del software con el que trabajo, por tanto decidí crear un directorio especial llamado ~/git para ahí meter todos los repositorios que descargo. *tip tip* *wink wink* *nudge nudge* 😉

Tutoriales

Referencias

Compilando git en ubuntu 7.10

Sistemas de control de versiones: Subversion y git

[singlepic=545,120,,,left]

Después de trabajar con algún sistema de control de versiones uno se pregunta como ha podido desarrollar —o vivir jejeje— sin ellos.

El primer VCS (Version Control System — Sistema de Control de Versiones) del cual llegué a escuchar fue el antiguo CVS (Concurrent Versions System).

Aún recuerdo las ventajas que mencionaban algunos amigos acerca de usar un software que te ayudara a llevar un control de los cambios que haces en tu código:

  • No tienes que hacer respaldos a mano de tu proyecto — Al ir haciendo commits, automáticamente se van guardando puntos de restauración de tu código.
  • Puedes regresar a una fecha determinada o versión de tu código fuente — Gracias a los puntos de restauración que has ido guardando en cada commit que haces.
  • Es posible desarrollar en equipo de una manera organizada — Así no pasará que alguien sobreescriba los archivos y cambios de alguien más sin querer.

Mi encuentro con Subversion

En aquel entonces también comencé a escuchar de otro VCS llamado Subversion (SVN) que incluía algunas mejoras significativas sobre los puntos flacos de CVS.

Así que decidí machetearle al SVN un rato, y cuando entendí realmente la utilidad y TODAS las ventajas que traia consigo, lo único que pude pensar fue:

¡¿Cómo he podido estar desarrollando sin un sistema de control de versiones?!

Si, es así de grande la diferencia que hace. 🙂

Continuar leyendo “Sistemas de control de versiones: Subversion y git”