GNU/Linux >> Linux の 問題 >  >> Linux

svnでvimdiffスタイルでsvn diffを表示する方法

ファイル $HOME/.subversion/config を編集します したがって、次の行が含まれます:

diff-cmd = <your favorite diff application>

一部の差分アプリは svn をサポートしています。例:diff-cmd = meld 正常に動作するはずです。ただし、vimdiff そうではない それらの中の一つ。その理由は svn diff 通常のように 1 番目と 2 番目ではなく、6 番目と 7 番目の引数として比較するファイルを指定します。したがって、この状況でほとんどの人が行うことは次のとおりです。

ラッパー スクリプトを作成する :

#!/bin/sh

/usr/bin/vimdiff ${6} ${7}

たとえば、$HOME/bin/svndiffwrap.sh に保存します

実行可能にすることを忘れないでください chmod +x $HOME/bin/svndiffwrap.sh .

svn diff コマンドにする :

$HOME/.subversion/config で :

diff-cmd = /home/<username>/bin/svndiffwrap.sh

注意 :一部の svn クライアントは $HOME を使用するパスをサポートしていません 環境変数。そのため、フルパスを指定すると便利です。


次の場所にあります:http://blog.tplus1.com/index.php/2007/08/29/how-to-use-vimdiff-as-the-subversion-diff-tool/

このブログ投稿では、スクリプトを SVN book external diff tools example から直接取得しています:

diffwrap.sh

#!/bin/sh

# Configure your favorite diff program here.
DIFF="/usr/local/bin/vimdiff"

# Subversion provides the paths we need as the sixth and seventh 
# parameters.
LEFT=${6}
RIGHT=${7}

# Call the diff command (change the following line to make sense for
# your merge program).
$DIFF $LEFT $RIGHT

# Return an errorcode of 0 if no differences were detected, 1 if some were.
# Any other errorcode will be treated as fatal.

注: これは、あなたの vimdiff/usr/local/bin にあります 、私の場合、Fedora では /usr/bin でした .見つからない場合は実行してください:

$ whereis vimdiff

次に ~/.subversion/config で :

[helpers]
...
diff-cmd = /home/<username>/bin/diffwrap.sh

vimdiff <(svn diff)

<() svn diff の出力から疑似ファイルを作成するプロセス置換と呼ばれます vimdiff の場合

次のようにシェル エイリアスを作成できます:alias svndiff='vimdiff <(svn diff)'

同様の回答

PS - これは私がまだ見つけていない最も簡単な解決策です。それは私の人生を変えました (比較的言えば)!


VCSCommand で実行できます - プラグインをインストールし、ファイルに移動して <Leader>cv を押します


Linux
  1. Vimdiff で差分セクションを展開/折りたたむ方法は?

  2. Subversionでディレクトリ/ファイルを無視するには?

  3. グループのメンバーを表示するにはどうすればよいですか?

  1. cPanelのスタイルを変更する方法

  2. Linuxで画像メタデータを表示する方法

  3. Coreファイルの見方(一般)

  1. Pleskで統計を表示する方法

  2. SVN Diff 使用時の Ubuntu Linux での行末スタイルの WinSCP の問題

  3. SVNパッチを作成して適用するには?