Adicionando Git repo e branch à linha de status do Tmux

3

Eu encontrei um arquivo de configuração do Tmux que mostra como adicionar o ramo do Git à linha de status do Tmux, no entanto. apenas mostra [[ branch ]] não importa se estou em um repositório do Git ou não. Eu não tenho certeza se isso requer git-completion , mas se assim for eu não tenho certeza se ele está instalado como é um pacote 'virtual' no Ubuntu (o líder 'v' significa 'virtual'):

$ aptitude search git-completion
v   git-completion

$ sudo apt-get install git-completion
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Note, selecting 'git' instead of 'git-completion'
git is already the newest version.

Como eu poderia adicionar a ramificação e também o nome do repositório git para o CWD na linha de status do Tmux?

Obrigado.

    
por dotancohen 11.06.2013 / 13:50

3 respostas

4

Eu desenvolvi um script Bash para fazer isso: tmux-git .

O tmux-git mostra a ramificação Git do diretório de trabalho atual e também verifica se há alterações não autorizadas e ocultas.

    
por 04.10.2013 / 21:00
8

Isto é muito mais fácil em versões mais recentes do tmux:

set -g status-right '#(cd #{pane_current_path}; git rev-parse --abbrev-ref HEAD)'
    
por 05.06.2016 / 09:18
5

Para completar, quero mencionar essa outra solução que desenvolvi para mostrar o status da atual árvore de trabalho do Git no tmux: tmux-gitbar .
Embora não seja um fork do excelente tmux-git, é baseado nele.

Aqui está o screencast na página do projeto README :

Além de mostrar a ramificação e o controle remoto, ele mostra informações adicionais sobre o status da árvore de trabalho do Git:

  • número de confirmações à frente / atrás filial upstream, divergência de ramificação
  • número de arquivos alterados , elementos testados , modificados , conflitos e * stashes **
  • cores

Como funciona

Um retorno de chamada é adicionado à variável de ambiente $PROMPT_COMMAND (seu valor é avaliado toda vez que um comando é executado no shell).
Este retorno de chamada atualiza a barra de status do tmux com as informações detalhadas que ele analisa de git status --porcelain etc... .
Ou, não faz nada no caso de CWD não ser uma árvore de trabalho do Git, e permite que o tmux mostre algo previamente declarado no arquivo tmux.conf .

    
por 19.02.2016 / 08:50