From d49cacfb7bb96049185c2edfaf3c330b0bde338e Mon Sep 17 00:00:00 2001 From: Victor Torres Date: Fri, 2 Oct 2015 23:16:56 -0300 Subject: [PATCH 1/3] Add branch plugin --- plugins/branch/README.md | 33 ++++++++++++++++++++++++++++++++ plugins/branch/branch.plugin.zsh | 26 +++++++++++++++++++++++++ 2 files changed, 59 insertions(+) create mode 100644 plugins/branch/README.md create mode 100644 plugins/branch/branch.plugin.zsh diff --git a/plugins/branch/README.md b/plugins/branch/README.md new file mode 100644 index 000000000..f970266a8 --- /dev/null +++ b/plugins/branch/README.md @@ -0,0 +1,33 @@ +# Branch + +Displays the current Git or Mercurial branch fast. + +## Speed test + +### Mercurial + +```shell +$ time hg branch +0.11s user 0.14s system 70% cpu 0.355 total +``` + +### Branch plugin + +```shell +$ time sh /tmp/branch_prompt_info.sh +0.01s user 0.01s system 81% cpu 0.018 total +``` + +## Usage + +Edit your theme file (eg.: `~/.oh-my-zsh/theme/robbyrussell.zsh-theme`) +adding `$(branch_prompt_info)` in your prompt like this: + +```diff +- PROMPT='${ret_status}%{$fg_bold[green]%}%p %{$fg[cyan]%}%c %{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}' ++ PROMPT='${ret_status}%{$fg_bold[green]%}%p %{$fg[cyan]%}%c %{$fg_bold[blue]%}$(git_prompt_info)$(branch_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}' +``` + +## Maintainer + +Victor Torres () diff --git a/plugins/branch/branch.plugin.zsh b/plugins/branch/branch.plugin.zsh new file mode 100644 index 000000000..c918ea2b5 --- /dev/null +++ b/plugins/branch/branch.plugin.zsh @@ -0,0 +1,26 @@ +# Branch: displays the current Git or Mercurial branch fast. +# Victor Torres +# Oct 2, 2015 + +function branch_prompt_info() { + # Defines path as current directory + path=$(pwd) + # While current path is not root path + while [ $path != '/' ]; + do + # Git repository + if [ -d ${path}/.git ]; + then + echo '±' $(/bin/cat ${path}/.git/HEAD | /usr/bin/cut -d / -f 3-) + return; + fi + # Mercurial repository + if [ -d ${path}/.hg ]; + then + echo '☿' $(/bin/cat ${path}/.hg/branch) + return; + fi + # Defines path as parent directory and keeps looking for :) + path=$(/usr/bin/dirname $path) + done +} From cf5db83facf67a27faa2860241f6ddc1d7e27b4f Mon Sep 17 00:00:00 2001 From: Victor Torres Date: Mon, 14 Dec 2015 17:39:26 -0300 Subject: [PATCH 2/3] Implementing mcornella's suggestions in pull request 4451. --- plugins/branch/branch.plugin.zsh | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/plugins/branch/branch.plugin.zsh b/plugins/branch/branch.plugin.zsh index c918ea2b5..a1e9ca31b 100644 --- a/plugins/branch/branch.plugin.zsh +++ b/plugins/branch/branch.plugin.zsh @@ -4,23 +4,23 @@ function branch_prompt_info() { # Defines path as current directory - path=$(pwd) + local current_dir=$PWD # While current path is not root path - while [ $path != '/' ]; + while [[ $current_dir != '/' ]] do # Git repository - if [ -d ${path}/.git ]; + if [[ -d "${current_dir}/.git" ]] then - echo '±' $(/bin/cat ${path}/.git/HEAD | /usr/bin/cut -d / -f 3-) + echo '±' ${"$(<"$current_dir/.git/HEAD")"##*/} return; fi # Mercurial repository - if [ -d ${path}/.hg ]; + if [[ -d "${current_dir}/.hg" ]] then - echo '☿' $(/bin/cat ${path}/.hg/branch) + echo '☿' $(<"$current_dir/.hg/branch") return; fi # Defines path as parent directory and keeps looking for :) - path=$(/usr/bin/dirname $path) + current_dir="${current_dir:h}" done } From fe63ed09b7a8d8040dbbe9892f89c1c46d4ff75d Mon Sep 17 00:00:00 2001 From: Victor Torres Date: Mon, 14 Dec 2015 20:58:29 -0300 Subject: [PATCH 3/3] Updating speed test info and using zsh command line. --- plugins/branch/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/branch/README.md b/plugins/branch/README.md index f970266a8..56ab8da4b 100644 --- a/plugins/branch/README.md +++ b/plugins/branch/README.md @@ -14,13 +14,13 @@ $ time hg branch ### Branch plugin ```shell -$ time sh /tmp/branch_prompt_info.sh -0.01s user 0.01s system 81% cpu 0.018 total +$ time zsh /tmp/branch_prompt_info_test.zsh +0.00s user 0.01s system 78% cpu 0.014 total ``` ## Usage -Edit your theme file (eg.: `~/.oh-my-zsh/theme/robbyrussell.zsh-theme`) +Edit your theme file (eg.: `~/.oh-my-zsh/theme/robbyrussell.zsh-theme`) adding `$(branch_prompt_info)` in your prompt like this: ```diff