El control de versiones es algo que siempre me ha llamado poderosamente la atención. Y mas que para aplicarlo únicamente al desarrollo de software, para aplicarlo a cualquier cosa que se te pueda pasar por la cabeza. Y es que las posibilidades que nos ofrece para llevar una gestión adecuada de cualquier tarea que llevemos adelante, son espectaculares. Sin embargo, tanto para un usuario novel, como para uno avezado en las lides del control de versiones, siempre llega un momento en el que necesita situarse, saber donde se encuentra. Para estas situaciones hay diferentes soluciones, y una de ellas es GRV, Git Repository Viewer.
GRV. Git Repository Viewer
Dependiendo del entorno de desarrollo que estés utilizando, es posible este disponga de un gestor visual de Git. O por lo menos, que tenga forma de mostrarte, de forma gráfica, la evolución de tu repositorio con el paso del tiempo.
Esto, no solo, te permite situarte donde te encuentras, sino que además te permite gestionar de una forma mas intuitiva las diferentes acciones que puedes realizar.
¿Porque utilizar un visor de Git en el terminal?
Es posible que te preguntes, que razón puedes tener para utilizar un visor de Git en el terminal. Sencillamente dependerá de tu flujo de trabajo, ni mas ni menos. Si, como comentaba en la introducción, tu entorno de desarrollo, ya lo lleva integrado, es posible que no te haga falta. Sin embargo, una solución como GRV siempre aporta herramientas adicionales o un punto de vista diferente.
Si por el contrario, para trabajar con Git, recurres al terminal, desde luego, que una herramienta, como GRV, te será de gran utilidad, aunque sea de forma puntual.
Características de GRV
GRV tiene algunas características que hacen que esta herramienta tenga un gran potencial, sobre todo aquellos acostumbrados a trabajar en el terminal, y mas si lo hacen utililizando VIM.
- Se pueden filtrar commits y referencias utilizando un lenguaje propio de consultas.
- Los cambios que se producen en el repositorio se refrescan en tiempo real en GRV. Esto lo consigue monitorizando el sistema de archivos.
- GRV está organizado en pestañas, permitiéndote crear nuevas utilizando la combinación de las existentes.
- Tiene un sistema de atajos de teclado similar a VI. Pero además, los atajos de teclado son configurables y personalizables, como no podía ser de otra manera.
- Puedes definir tus propios temas.
- Tiene soporte para ratón.
- Tiene un gráfico de commits.
Atajos de teclado
A continuación puedes encontrar algunos de los atajos de teclado mas interesantes, que por supuesto puedes definir según tus propias necesidades.
Atajo | Acción | Descripción |
---|---|---|
z.,zz | grv-center-view | Centra la vista |
L | grv-cursor-bottom-view | Se mueve a la última línea de la página |
M | grv-cursor-middle-view | Se mueve al medio de la página |
H | grv-cursor-top-view | Se mueve a la primera línea de la página |
gg | grv-first-line | Se mueve a la primera línea |
G | grv-last-line | Se mueve a la última línea |
C-d | grv-next-half-page | Se mueve media página abajo |
Down,j | grv-next-line | Se mueve una línea abajo |
PageDown,C-f | grv-next-page | Se mueve una página abajo |
C-u | grv-prev-half-page | Se mueve media página arriba |
Up,k | grv-prev-line | Se mueve una línea arriba |
PageUp,C-b | grv-prev-page | Se mueve una página arriba |
zb | grv-scroll-cursor-bottom | Desplaza la pantalla hacia abajo |
zt | grv-scroll-cursor-top | Desplaza la pantalla hacia arriba |
Left, h | grv-scroll-left | Desplazamiento a la izquierda |
Right,l | grv-scroll-right | Desplazamiento a la derecha |
/ | grv-search-prompt | Búsqueda desde el principio |
? | grv-reverse-search-prompt | Búsqueda desde el final |
n | grv-search-find-next | Se desplaza al siguiente encontrado |
N | grv-search-find-prev | Se desplaza al anterior encontrado |
Estos son unos pocos de los atajos de teclado que te permite GRV. Te recomiendo que le des un vistazo al listado de atajos de teclado porque es sinceramente brutal.
Ciertamente aprenderte todos estos atajos de teclado tiene su aquel, pero es que la productividad que te ofrece, es muy interesante.
Configuración
Una de los aspectos reseñados de la aplicación es, precisamente, el gráfico de commits. Sin embargo, este no se muestra por defecto. Para mostrarlo tienes que ejecutar set commit-graph true
. Esta es una de las variables que GRV te permite configurar. Existen muchas otras, entre ellas te destaco las siguientes,
Variable | Tipo | Valor por defecto | Descripción |
---|---|---|---|
commit-graph | booleana | false | Gráfico visible |
mouse | booleana | false | Soporte del ratón |
tabwidth | entero | 8 | Ancho del tabulador |
theme | cadena | solarized | Tema activo |
Además de poder configurar los valore a través de comando, también lo puedes hacer mediante un fichero de configuración, ~/.config/grv/grvrc
. En mi caso, tengo las siguientes opciones definidas,
set commit-graph true
set tabwidth 4
set mouse true
Instalación
Actualmente, GRV, no está disponible en los repositorios oficiales de Ubuntu, pero lo puedes instalar fácilmente desde GitHub.
Otra opción, es ejecutar las siguientes órdenes, pero ten en cuenta, que la versión puede haber cambiado,
wget -O grv https://github.com/rgburke/grv/releases/download/v0.3.0/grv_v0.3.0_linux64
chmod +x .grv
sudo mv grv /usr/bin
En el caso de que utilices bash-it o oh-my-zsh
ten en cuenta que existe un alias para git que es precisamente grv
, con lo que tendrás que deshabilitar este alias.
Conclusiones
Como te he comentado a lo largo del artículo, se trata de una aplicación realmente útil, y que seguro te puede aportar una mejor visión de Git, con independencia de tu nivel de usuario. Mi recomendación, como de costumbre en estos casos, es que pruebes GRV, porque siempre te puede aportar algo nuevo.
En el caso de que seas un usuario novel, tres cuartos de lo mismo, prueba GRV. Soy consciente de que es posible que el terminal te tire para atrás. Sin embargo, tarde o temprano, te darás cuenta de que el terminal es tu amigo con la productividad, con lo que cuanto antes empieces a utilizarlo antes empezarás a ser altamente productivo.
Más información,