From b9e76ce057cab4819ebf3bcf6e20974130bf4558 Mon Sep 17 00:00:00 2001 From: Daniel Hahler Date: Tue, 29 Mar 2011 01:55:10 +0200 Subject: [PATCH] svnsafeup: fold diff blocks, oneline stat, y/n Minor improvements on the svnsafeup function: - use last line of diffstat as header - add 2nd level folds to diff sections, folding each file's diff - require "y" to continue to `svn up` --- plugins/svn/svn.plugin.zsh | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/plugins/svn/svn.plugin.zsh b/plugins/svn/svn.plugin.zsh index 337b8cf23..390049393 100644 --- a/plugins/svn/svn.plugin.zsh +++ b/plugins/svn/svn.plugin.zsh @@ -51,7 +51,7 @@ function svnsafeup() { fi local from=${2:-BASE} to=${1:-HEAD} local range="$from:$to" - local marker_o='{{{' marker_c="}}}\n\n" # fold markers + local marker_o='{{{' marker_c="}}}\n" # fold markers local repo_id="$(svn_get_repo_name)@$(svn_get_rev_nr)" local diffcmd="svn diff -r $range" @@ -65,19 +65,23 @@ function svnsafeup() { echo "Diff for: $repo_id, range: $range" echo if [ $commands[diffstat] ] ; then - echo "$diffcmd | diffstat: $marker_o" - echo $diff | diffstat - echo "$marker_c" + diffstat=$(echo $diff | diffstat) + echo -n "diffstat: " + echo $diffstat | tail -n1 + echo $marker_o + echo $diffstat + echo $marker_c fi echo "svn log -r $range: $marker_o" svn log -r $range echo "$marker_c" echo "$diffcmd: $marker_o" - echo $diff - echo "$marker_c" + echo $diff | sed "s/^Index: .*/\0 ${marker_o}2/" + echo "${marker_c}2" # add modeline for vim echo " vim:fdm=marker:fdl=1:" } | view - - read "?continue to 'svn up'? (ctrl-c to abort)" || return 1 + read "answer?continue to 'svn up'? (ctrl-c to abort, y to continue) " || return 1 + [[ $answer == "y" ]] || return 1 svn up -r $to }