svn でのマージを簡単にする方法を試しています。
このページには、マージに外部ツールを使用できることが記載されています。vim を外部マージ ツールとして使用できますか?
いくつかの追加要件:
- 見やすくするために、ファイルを水平方向/垂直方向に分割する必要があります。
- ウィンドウのタイトルは適切に設定する必要があります。
例: のように
ステップ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