summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSZEDER Gábor <szeder@ira.uka.de>2011-04-01 00:25:16 +0200
committerSZEDER Gábor <szeder@ira.uka.de>2013-06-24 17:22:09 +0200
commitb91b935f04e8dcb1cc9f247627fbd0346ce949f4 (patch)
treed08920c3b92839449e3460453ac9ad7d598ecac7
parent511ad159049fc64a13ef3e9565cc9634acb6404b (diff)
downloadgit-b91b935f04e8dcb1cc9f247627fbd0346ce949f4.tar.gz
bash prompt: use bash builtins to find out rebase state
During an ongoing interactive rebase __git_ps1() finds out the name of the rebased branch, the total number of patches and the number of the current patch by executing a '$(cat .git/rebase-merge/<FILE>)' command substitution for each. That is not quite the most efficient way to read single line single word files, because it imposes the overhead of fork()ing a subshell and fork()+exec()ing 'cat' several times. Use the 'read' bash builtin instead to avoid those overheads. Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
-rw-r--r--contrib/completion/git-prompt.sh12
1 files changed, 6 insertions, 6 deletions
diff --git a/contrib/completion/git-prompt.sh b/contrib/completion/git-prompt.sh
index 0563dea8ae..bc402f56b2 100644
--- a/contrib/completion/git-prompt.sh
+++ b/contrib/completion/git-prompt.sh
@@ -325,9 +325,9 @@ __git_ps1 ()
local step=""
local total=""
if [ -d "$g/rebase-merge" ]; then
- b="$(cat "$g/rebase-merge/head-name" 2>/dev/null)"
- step=$(cat "$g/rebase-merge/msgnum" 2>/dev/null)
- total=$(cat "$g/rebase-merge/end" 2>/dev/null)
+ read b 2>/dev/null <"$g/rebase-merge/head-name"
+ read step 2>/dev/null <"$g/rebase-merge/msgnum"
+ read total 2>/dev/null <"$g/rebase-merge/end"
if [ -f "$g/rebase-merge/interactive" ]; then
r="|REBASE-i"
else
@@ -335,10 +335,10 @@ __git_ps1 ()
fi
else
if [ -d "$g/rebase-apply" ]; then
- step=$(cat "$g/rebase-apply/next" 2>/dev/null)
- total=$(cat "$g/rebase-apply/last" 2>/dev/null)
+ read step 2>/dev/null <"$g/rebase-apply/next"
+ read total 2>/dev/null <"$g/rebase-apply/last"
if [ -f "$g/rebase-apply/rebasing" ]; then
- b="$(cat "$g/rebase-apply/head-name" 2>/dev/null)"
+ read b 2>/dev/null <"$g/rebase-apply/head-name"
r="|REBASE"
elif [ -f "$g/rebase-apply/applying" ]; then
r="|AM"