summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLeonid Volnitsky <Leonid@Volnitsky.com>2008-06-21 22:28:15 +0300
committerLeonid Volnitsky <Leonid@Volnitsky.com>2008-06-21 22:28:15 +0300
commitec48db9521951adbec83ab8c784aeaebf3f4d683 (patch)
tree9a08e67bbaea7585c09292ed39d1f7905f3e6379
parentfix: demo git-cat-FOO (diff)
downloadgit-prompt-ec48db9521951adbec83ab8c784aeaebf3f4d683.tar.gz
git-prompt-ec48db9521951adbec83ab8c784aeaebf3f4d683.tar.bz2
git-prompt-ec48db9521951adbec83ab8c784aeaebf3f4d683.zip
WIP
-rwxr-xr-xprompt37
1 files changed, 37 insertions, 0 deletions
diff --git a/prompt b/prompt
index 3bb8e65..47eb14e 100755
--- a/prompt
+++ b/prompt
@@ -242,6 +242,43 @@ PROMPT_COMMAND='
# LOCALS
# SVN
# ...
+
+ if [[ -d .svn ]]; then
+
+ ### get rev
+ eval `
+ svn info |
+ sed -n "
+ s@^URL[^/]*//@repo_dir=@p
+ s/^Revision: /rev=/p
+ "
+ `
+ ### get status
+
+ eval `svn -q status 2>/dev/null |
+ sed -n "
+ s/^A /modified=modified; git_modified_files+=\" \"/p
+ s/^M /modified=modified; git_modified_files+=\" \"/p
+ "
+ `
+
+ ### sort statuses, choose primary (for branch color)
+ status=${op+op}
+ status=${status:-$detached}
+ status=${status:-$clean}
+ status=${status:-$modified}
+ status=${status:-$added}
+ status=${status:-$untracked}
+ # at least one should be set
+ : ${status?prompt internal error: git status}
+ eval git_color="\${git_$status}"
+ git_color=${git_color:-$WHITE} # default
+
+ ### compose
+ tail_local="($git_status$rev)"
+ tail_local="${tail_local+$git_color $tail_local}${dir_color}"
+ fi
+
# make
# ...