12

svn でのマージを簡単にする方法を試しています。

このページには、マージに外部ツールを使用できることが記載されています。vim を外部マージ ツールとして使用できますか?

いくつかの追加要件:

  1. 見やすくするために、ファイルを水平方向/垂直方向に分割する必要があります。
  2. ウィンドウのタイトルは適切に設定する必要があります。

例: のように ここに画像の説明を入力

4

1 に答える 1

29

ステップ1:

次のスクリプトを保存します。たとえば、merger.sh:

#!/bin/sh
#


BASE=${1}
THEIRS=${2}
MINE=${3}
MERGED=${4}
WCPATH=${5}

vimdiff $MINE $THEIRS -c ":botright split $MERGED" -c ":diffthis" -c "setl statusline=MERGED | wincmd W | setl statusline=THEIRS | wincmd W | setl statusline=MINE"

ステップ2:

.subversion/config次の行を編集 して追加します。

merge-tool-cmd = /path/to/merger.sh

ステップ 3:

svn merge コマンドの実行中に次のオプションが表示されたら、オプション ' l' を選択します。これは、競合を解決するための外部ツールを起動することです。

Conflict discovered in 'main.h'.
Select: (p) postpone, (df) diff-full, (e) edit,
        (mc) mine-conflict, (tc) theirs-conflict,
        (s) show all options: l

ステップ 4: これで、vim が 3 つのファイル (mine、theirs、merged) で diff モードで開かれます。マージされたファイルに必要な変更を加え、保存して終了します ( :wqa)。

ステップ 5:

以下のオプションが再び表示されます。[ r] (マージされたバージョンを受け入れる) を選択します。

Select: (p) postpone, (df) diff-full, (e) edit,
            (mc) mine-conflict, (tc) theirs-conflict,
            (s) show all options: r
于 2013-10-30T09:49:00.277 に答える