From e44fcbe4ad82cfb8d83bbd39facb522e1005a61f Mon Sep 17 00:00:00 2001 From: Hugues Hiegel Date: Thu, 26 Aug 2010 14:36:15 +0200 Subject: [Git] uses 'git ' instead of 'git-' form --- 01_Functions.zsh | 31 ++++++++++++++++--------------- user:hugues/Bindings | 4 ++-- user:hugues/KeyBindings.zsh | 4 ++-- 3 files changed, 20 insertions(+), 19 deletions(-) diff --git a/01_Functions.zsh b/01_Functions.zsh index f6c99bf..a8c5b31 100644 --- a/01_Functions.zsh +++ b/01_Functions.zsh @@ -112,24 +112,25 @@ get_git_branch () fi fi - [ "$( ( git-ls-files ; git-ls-tree HEAD . ) 2>&- | head -n1)" = "" -a \( ! -d .git -o "$(git-rev-parse --git-dir 2>&-)" != ".git" \) -a "$(git-rev-parse --is-inside-git-dir 2>&-)" != "true" ] && return + # Get git branch only from git managed folders (not ignored subfolders..) + [ "$( ( git ls-files ; git ls-tree HEAD . ) 2>&- | head -n1)" = "" -a \( ! -d .git -o "$(git rev-parse --git-dir 2>&-)" != ".git" \) -a "$(git rev-parse --is-inside-git-dir 2>&-)" != "true" ] && return - GIT_DIR=$(git-rev-parse --git-dir) + GIT_DIR=$(git rev-parse --git-dir) # Get current working GIT branch - my_git_branch="$(git-branch 2>&- | grep -E '^\* ' | cut -c3-)" + my_git_branch="$(git branch 2>&- | grep -E '^\* ' | cut -c3-)" if [ "$my_git_branch" != "" ] then # If not on a working GIT branch, get the named current commit-ish inside parenthesis [ "$my_git_branch" = "(no branch)" ] &&\ checkouted_branch="" && \ - my_git_branch="$(git-name-rev --name-only HEAD 2>&- | sed 's,^tags/,,;s,^remotes/,,;s,\^0$,,')" + my_git_branch="$(git name-rev --name-only HEAD 2>&- | sed 's,^tags/,,;s,^remotes/,,;s,\^0$,,')" # If neither on a named commit-ish, show commit-id if [ "$my_git_branch" = "undefined" ] then - my_git_branch="$(git-rev-parse --verify HEAD 2>&-)" + my_git_branch="$(git rev-parse --verify HEAD 2>&-)" fi else # Initial commit @@ -157,7 +158,7 @@ get_git_branch () if [ "$REBASE_DIR" = "$GIT_DIR/rebase-merge" ] then current=$(< $REBASE_DIR/done wc -l) - last=$(( $current + $(< $REBASE_DIR/git-rebase-todo grep -v "^#\|^[[:blank:]]*$" | wc -l) )) + last=$(( $current + $(< $REBASE_DIR/git rebase-todo grep -v "^#\|^[[:blank:]]*$" | wc -l) )) rebase=$rebase$rebase_in_progress": " else current=$(cat $REBASE_DIR/next) @@ -165,14 +166,14 @@ get_git_branch () fi # Then the result - my_git_branch="[rebase $current/$last: "$(git-name-rev --name-only "$(cat $REBASE_DIR/onto 2>/dev/null)" 2>/dev/null)".."$my_git_branch"]" + my_git_branch="[rebase $current/$last: "$(git name-rev --name-only "$(cat $REBASE_DIR/onto 2>/dev/null)" 2>/dev/null)".."$my_git_branch"]" [ -r $REBASE_DIR/head-name ] && my_git_branch=$my_git_branch" "$(< $REBASE_DIR/head-name sed 's/^refs\///;s/^heads\///') else # No rebase in progress, put '(' ')' if needed [ ! "$checkouted_branch" ] && my_git_branch="($my_git_branch)" fi - if [ "$(git-status 2>&- | grep "new file" | head -n1)" != "" ] ; then + if [ "$(git status 2>&- | grep "new file" | head -n1)" != "" ] ; then # ADDED FILES my_git_branch=$my_git_branch fi @@ -197,19 +198,19 @@ get_git_status () return fi - if [ "$(git-rev-parse --is-inside-git-dir)" = "true" -o "$(git-config --get core.bare)" = "true" ] ; then + if [ "$(git rev-parse --is-inside-git-dir)" = "true" -o "$(git config --get core.bare)" = "true" ] ; then echo "$git_colors[managment_folder]" return fi - if [ "$(git-diff --cached 2>&- | grep '^diff ' | head -n1 )" != "" ] ; then + if [ "$(git diff --cached 2>&- | grep '^diff ' | head -n1 )" != "" ] ; then cached="yes" fi - if [ "$(git-ls-files -m 2>&- | head -n1)" != "" ] ; then + if [ "$(git ls-files -m 2>&- | head -n1)" != "" ] ; then not_up_to_date="yes" fi - GIT_DIR=$(git-rev-parse --git-dir 2>/dev/null) + GIT_DIR=$(git rev-parse --git-dir 2>/dev/null) if [ "$cached" != "" -a "$not_up_to_date" != "" ] ; then my_git_status="$git_colors[cached_and_not_up_to_date]" @@ -217,8 +218,8 @@ get_git_status () my_git_status="$git_colors[cached]" elif [ "$not_up_to_date" != "" ] ; then my_git_status="$git_colors[not_up_to_date]" - elif [ "$(git-cat-file -t HEAD 2>/dev/null)" != "commit" ] ; then - if [ ! -z "$(git-ls-files)" ] ; then + elif [ "$(git cat-file -t HEAD 2>/dev/null)" != "commit" ] ; then + if [ ! -z "$(git ls-files)" ] ; then my_git_status="$git_colors[cached]" else my_git_status="$git_colors[init_in_progress]" @@ -373,7 +374,7 @@ chpwd() if ( cmd_exists git && test -d .git ) then # Shows tracked branches and modified files - git-checkout HEAD 2>&1 | sed 's/^/ /' + git checkout HEAD 2>&1 | sed 's/^/ /' fi } diff --git a/user:hugues/Bindings b/user:hugues/Bindings index 301eb28..e0013c2 100644 --- a/user:hugues/Bindings +++ b/user:hugues/Bindings @@ -167,8 +167,8 @@ bindkey -s 'l' 'Q l\n' bindkey -s ' ' '\\ ' -bindkey -s 'g' 'Q git-status\n' -bindkey -s 'G' 'Q git-repack -d -a\n' +bindkey -s 'g' 'Q git status\n' +bindkey -s 'G' 'Q git repack -d -a\n' bindkey -s 'S' 'Q sudo !!' diff --git a/user:hugues/KeyBindings.zsh b/user:hugues/KeyBindings.zsh index a8bbc3c..b671415 100644 --- a/user:hugues/KeyBindings.zsh +++ b/user:hugues/KeyBindings.zsh @@ -216,8 +216,8 @@ do bindkey -M $keymap -s ' ' '\\ ' - bindkey -M $keymap -s 'g' 'Q git-status\n' - bindkey -M $keymap -s 'G' 'Q git-remote -v update\n' + bindkey -M $keymap -s 'g' 'Q git status\n' + bindkey -M $keymap -s 'G' 'Q git remote -v update\n' bindkey -M $keymap -s 'S' 'Q sudo !!' -- cgit v1.2.3 From 01fcff8f4243e75116986fbb818789f0c138d087 Mon Sep 17 00:00:00 2001 From: Hugues Hiegel Date: Thu, 26 Aug 2010 14:37:11 +0200 Subject: [Git] wrapper to let git work only inside git folders --- 01_Functions.zsh | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/01_Functions.zsh b/01_Functions.zsh index a8c5b31..1ccc8d0 100644 --- a/01_Functions.zsh +++ b/01_Functions.zsh @@ -22,6 +22,25 @@ cmd_exists () which -p $1 >/dev/null 2>&1 } +git () { + GIT=$(which -p git) + case $1 in + init|clone) + ;; + *) + if [ "$( ( $GIT ls-files ; $GIT ls-tree HEAD . ) 2>&- | head -n1)" = ""\ + -a \( ! -d .git -o "$($GIT rev-parse --git-dir 2>&-)" != ".git" \)\ + -a "$($GIT rev-parse --is-inside-git-dir 2>&-)" != "true" ] + then + echo >&2 "Not inside a git folder !" + return + fi + ;; + esac + + $(which -p git) $@ +} + term_title() { # Jobs -- cgit v1.2.3 From 0f02d165ffae1dd2aeb0b840f2ce3dfcf599dc78 Mon Sep 17 00:00:00 2001 From: Hugues Hiegel Date: Thu, 26 Aug 2010 14:45:53 +0200 Subject: [Func] git clearer error message --- 01_Functions.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/01_Functions.zsh b/01_Functions.zsh index 1ccc8d0..abec907 100644 --- a/01_Functions.zsh +++ b/01_Functions.zsh @@ -32,7 +32,7 @@ git () { -a \( ! -d .git -o "$($GIT rev-parse --git-dir 2>&-)" != ".git" \)\ -a "$($GIT rev-parse --is-inside-git-dir 2>&-)" != "true" ] then - echo >&2 "Not inside a git folder !" + echo >&2 "zsh: the current folder is not managed by git" return fi ;; -- cgit v1.2.3 From af359d8f4d0c1c78e8feecd2553dec8864a88be4 Mon Sep 17 00:00:00 2001 From: Hugues Hiegel Date: Fri, 27 Aug 2010 11:36:47 +0200 Subject: [Keys] git status on current folder --- user:hugues/KeyBindings.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/user:hugues/KeyBindings.zsh b/user:hugues/KeyBindings.zsh index b671415..82d3e45 100644 --- a/user:hugues/KeyBindings.zsh +++ b/user:hugues/KeyBindings.zsh @@ -216,7 +216,7 @@ do bindkey -M $keymap -s ' ' '\\ ' - bindkey -M $keymap -s 'g' 'Q git status\n' + bindkey -M $keymap -s 'g' 'Q git status .\n' bindkey -M $keymap -s 'G' 'Q git remote -v update\n' bindkey -M $keymap -s 'S' 'Q sudo !!' -- cgit v1.2.3