私の.subversion/config
ファイルでは、変更を表示するためdiff-cmd
に呼び出すスクリプトとして設定しました。vimdiff
以下は私の問題です: 10 個のファイルが変更された 2 つの svn URL 間の差分を表示しています。このsvn diff url1 url2
コマンドは、最初のファイルの差分を開きます。vim で :qa を発行すると、2 番目のファイルの差分が表示されます。さて、vimを完全に終了し、差分の表示を中止する方法はありますか(残りの8回に :qa を実行する以外に)?
更新: 以下は私のスクリプトです:
#!/bin/sh
# use vimdiff to view diffs
DIFF="/usr/bin/vimdiff -o"
NUM=$# # number of arguments
LEFT=${6} # old file
RIGHT=${7} # new file
L_TITLE=${3} # actual name and revision of old file
R_TITLE=${5} # actual name and revision of new file
ST="${L_TITLE}"
# get the file name
NAME=`echo $ST | tr -s ' ' '\n' | head -1`
L_BRANCH=`echo $L_TITLE | tr -s ' ' '\n' | head -2 | tail -1`
R_BRANCH=`echo $R_TITLE | tr -s ' ' '\n' | head -2 | tail -1`
# get the old and new revision numbers
L_REV=`echo $L_TITLE | tr -s '(' '\n' | cut -d ')' -f1 | tail -1 | tr -s ' ' '_' `
R_REV=`echo $R_TITLE | tr -s '(' '\n' | cut -d ')' -f1 | tail -1 | tr -s ' ' '_' `
L_REV=`echo "${L_BRANCH}__${L_REV}"`
R_REV=`echo "${R_BRANCH}__${R_REV}"`
# invoke vim
$DIFF $LEFT $RIGHT -c "setl stl=$NAME%20{'$L_REV'} | wincmd W | setl stl=$NAME%20{'$R_REV'}"