{"id":7,"date":"2015-06-28T07:23:02","date_gmt":"2015-06-28T12:23:02","guid":{"rendered":"http:\/\/drmad.org\/blog\/?p=7"},"modified":"2021-11-02T21:14:37","modified_gmt":"2021-11-03T02:14:37","slug":"branch-de-git-en-tmux","status":"publish","type":"post","link":"https:\/\/drmad.org\/blog\/branch-de-git-en-tmux.html","title":{"rendered":"Branch de Git en Tmux"},"content":{"rendered":"\n<p>Para desempolvar este blog, le he instalado el nuevo tema 2014 que est\u00e1 bien paja. Despu\u00e9s le cambiar\u00e9 la imagen de la portada. Pero por ahora, quiero comentarles sobre un peque\u00f1o script que he creado para jugar mejor con <a href=\"https:\/\/git-scm.com\/\">Git<\/a>:<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/drmad\/tmux-git\">https:\/\/github.com\/drmad\/tmux-git<\/a><\/p>\n\n\n\n<p>Este script muestra la rama (\u2018<em>branch<\/em>\u2018) activa del repositorio Git que est\u00e1 en el directorio activo en la barra de estado de <a href=\"https:\/\/tmux.github.io\/\">Tmux<\/a>, un \u201cmultiplexador\u201d de terminales cliente-servidor muy paja, que adem\u00e1s proporciona esa barra de estado.<\/p>\n\n\n\n<p>\u00bfPor qu\u00e9 Tmux? Hay varias soluciones para mostrar el <em>branch<\/em> activo en el <em>prompt<\/em>&nbsp; del terminal de Linux, como <a href=\"https:\/\/github.com\/jimeh\/git-aware-prompt\">esta<\/a>&nbsp;(lo cual es muy \u00fatil, para no estar repitiendo <tt>git status<\/tt> constantemente), pero la verdad es que me gusta tener el <em>prompt<\/em> sencillo, sin tantos bombos ni platillos. Entonces, \u00bfd\u00f3nde muestro esa informaci\u00f3n?<\/p>\n\n\n\n<p>Ahi entra a tallar Tmux.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Instalaci\u00f3n<\/h3>\n\n\n\n<p>Primero necesitas, obviamente, tener instalado <tt>tmux<\/tt> y <tt>git<\/tt>\u2026 Si unas una distro derivada de Debian (como <a href=\"http:\/\/web.archive.org\/web\/20131123200701\/http:\/\/ubuntu.com\/\">Ubuntu<\/a>, <a href=\"http:\/\/web.archive.org\/web\/20131123200701\/http:\/\/linuxmint.com\/\">Mint<\/a>, <a href=\"http:\/\/web.archive.org\/web\/20131123200701\/http:\/\/elementaryos.org\/\">ElementaryOS<\/a>, <a href=\"http:\/\/web.archive.org\/web\/20131123200701\/http:\/\/store.steampowered.com\/livingroom\/SteamOS\/\">SteamOS<\/a>, etc.), basta ejecutar:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo apt-get install tmux git<\/pre>\n\n\n\n<p>Una vez instalado todo,&nbsp;clonas el proyecto a una carpeta escondida en tu <em>home:<\/em><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">git clone git:\/\/github.com\/drmad\/tmux-git.git ~\/.tmux-git\n<\/pre>\n\n\n\n<p>Luego, agregas el <em>script<\/em> en el fichero de incializaci\u00f3n de Bash ejecutando esta l\u00ednea:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">echo \"if [[ \\$TMUX ]]; then source ~\/.tmux-git\/tmux-git.sh; fi\" >> ~\/.bashrc\n<\/pre>\n\n\n\n<p>Y ejecutas el <code>tmux<\/code>, Cambias tu directorio por defecto a un repo Git, <em>et voil\u00e0<\/em>:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><a href=\"https:\/\/i0.wp.com\/drmad.org\/blog\/wp-content\/uploads\/2021\/11\/imagen.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"874\" data-permalink=\"https:\/\/drmad.org\/blog\/branch-de-git-en-tmux.html\/imagen\" data-orig-file=\"https:\/\/i0.wp.com\/drmad.org\/blog\/wp-content\/uploads\/2021\/11\/imagen.png?fit=1152%2C754&amp;ssl=1\" data-orig-size=\"1152,754\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"imagen\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/drmad.org\/blog\/wp-content\/uploads\/2021\/11\/imagen.png?fit=300%2C196&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/drmad.org\/blog\/wp-content\/uploads\/2021\/11\/imagen.png?fit=810%2C530&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/drmad.org\/blog\/wp-content\/uploads\/2021\/11\/imagen.png?resize=512%2C335&#038;ssl=1\" alt=\"\" class=\"wp-image-874\" width=\"512\" height=\"335\" srcset=\"https:\/\/i0.wp.com\/drmad.org\/blog\/wp-content\/uploads\/2021\/11\/imagen.png?resize=1024%2C670&amp;ssl=1 1024w, https:\/\/i0.wp.com\/drmad.org\/blog\/wp-content\/uploads\/2021\/11\/imagen.png?resize=300%2C196&amp;ssl=1 300w, https:\/\/i0.wp.com\/drmad.org\/blog\/wp-content\/uploads\/2021\/11\/imagen.png?resize=768%2C503&amp;ssl=1 768w, https:\/\/i0.wp.com\/drmad.org\/blog\/wp-content\/uploads\/2021\/11\/imagen.png?resize=120%2C80&amp;ssl=1 120w, https:\/\/i0.wp.com\/drmad.org\/blog\/wp-content\/uploads\/2021\/11\/imagen.png?w=1152&amp;ssl=1 1152w\" sizes=\"auto, (max-width: 512px) 100vw, 512px\" \/><\/a><\/figure><\/div>\n\n\n\n<p>Si el <em>branch<\/em> tiene cambios pendientes para ser <em>commiteados<\/em>, el mensaje aparece resaltado, y con un asterisco al lado:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><a href=\"https:\/\/i0.wp.com\/drmad.org\/blog\/wp-content\/uploads\/2021\/11\/imagen-1.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"875\" data-permalink=\"https:\/\/drmad.org\/blog\/branch-de-git-en-tmux.html\/imagen-1\" data-orig-file=\"https:\/\/i0.wp.com\/drmad.org\/blog\/wp-content\/uploads\/2021\/11\/imagen-1.png?fit=1152%2C754&amp;ssl=1\" data-orig-size=\"1152,754\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"imagen-1\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/drmad.org\/blog\/wp-content\/uploads\/2021\/11\/imagen-1.png?fit=300%2C196&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/drmad.org\/blog\/wp-content\/uploads\/2021\/11\/imagen-1.png?fit=810%2C530&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/drmad.org\/blog\/wp-content\/uploads\/2021\/11\/imagen-1.png?resize=512%2C335&#038;ssl=1\" alt=\"\" class=\"wp-image-875\" width=\"512\" height=\"335\" srcset=\"https:\/\/i0.wp.com\/drmad.org\/blog\/wp-content\/uploads\/2021\/11\/imagen-1.png?resize=1024%2C670&amp;ssl=1 1024w, https:\/\/i0.wp.com\/drmad.org\/blog\/wp-content\/uploads\/2021\/11\/imagen-1.png?resize=300%2C196&amp;ssl=1 300w, https:\/\/i0.wp.com\/drmad.org\/blog\/wp-content\/uploads\/2021\/11\/imagen-1.png?resize=768%2C503&amp;ssl=1 768w, https:\/\/i0.wp.com\/drmad.org\/blog\/wp-content\/uploads\/2021\/11\/imagen-1.png?resize=120%2C80&amp;ssl=1 120w, https:\/\/i0.wp.com\/drmad.org\/blog\/wp-content\/uploads\/2021\/11\/imagen-1.png?w=1152&amp;ssl=1 1152w\" sizes=\"auto, (max-width: 512px) 100vw, 512px\" \/><\/a><\/figure><\/div>\n\n\n\n<p>La configuraci\u00f3n se realiza modificado el fichero <code>~\/.tmux-git.conf<\/code>, que se crea autom\u00e1ticamente al iniciar el script por primera vez. Dentro hay 2 variables y una funci\u00f3n:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><code>TMUX_STATUS_LOCATION<\/code> define la posici\u00f3n del estado de git en la barra de <code>tmux<\/code>. El valor puede ser <code>left<\/code> o <code>right<\/code>.<\/li><li><code>TMUX_OUTREPO_STATUS<\/code> define el contenido del estado cuando no est\u00e9s dentro de una <code>repo git<\/code>. Por defecto es la configuraci\u00f3n actual de <code>tmux<\/code>.<\/li><li><code>TMUX_STATUS_DEFINITION()<\/code> es una funci\u00f3n que debe definir el contenido de la variable <code>TMUX_STATUS<\/code>, que es mostrado en la barra de estado de <code>tmux<\/code>. Por defecto muestra <code>[nombre-repo] | branch: [rama][*]<\/code><\/li><\/ul>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Para desempolvar este blog, le he instalado el nuevo tema 2014 que est\u00e1 bien paja. Despu\u00e9s le cambiar\u00e9 la imagen<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[6,53],"tags":[],"class_list":["post-7","post","type-post","status-publish","format-standard","hentry","category-linux","category-tmux"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p6p3z1-7","jetpack-related-posts":[],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/drmad.org\/blog\/wp-json\/wp\/v2\/posts\/7","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/drmad.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/drmad.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/drmad.org\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/drmad.org\/blog\/wp-json\/wp\/v2\/comments?post=7"}],"version-history":[{"count":7,"href":"https:\/\/drmad.org\/blog\/wp-json\/wp\/v2\/posts\/7\/revisions"}],"predecessor-version":[{"id":880,"href":"https:\/\/drmad.org\/blog\/wp-json\/wp\/v2\/posts\/7\/revisions\/880"}],"wp:attachment":[{"href":"https:\/\/drmad.org\/blog\/wp-json\/wp\/v2\/media?parent=7"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/drmad.org\/blog\/wp-json\/wp\/v2\/categories?post=7"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/drmad.org\/blog\/wp-json\/wp\/v2\/tags?post=7"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}