我想知道在svn中如何合併可以變得簡單。svn:使用vim合併衝突
這個page提到可以使用外部工具進行合併。 可以將vim用作外部合併工具嗎?
一些額外的要求:
- 文件應水平/垂直分割給一個更好的視野。
- 窗口標題應適當設置。
例如:如在
我想知道在svn中如何合併可以變得簡單。svn:使用vim合併衝突
這個page提到可以使用外部工具進行合併。 可以將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:
編輯並添加以下行:
merge-tool-cmd = /path/to/merger.sh
第3步:
,當你得到以下的svn合併命令,選擇選項 '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將在diff模式與3檔開了 - 我的,他們和合並。 在合併的文件中進行必要的更改,並保存並退出(:wqa
)。
第5步:
現在下面的選項將再次出現,選擇 'r
'(接受合併版本)現在。
Select: (p) postpone, (df) diff-full, (e) edit,
(mc) mine-conflict, (tc) theirs-conflict,
(s) show all options: r
我現在非常愛你....這很美麗。 – ldog
如果永久不需要此更改,也可以通過設置環境變量SVN_MERGE =/path/to/merger.sh來完成 – Michael
如何使用此腳本解決具有來自「svn」衝突的凌亂工作空間更新「?我有一堆.r *,.mine文件,但不知道如何讓我的工作區重新處於乾淨狀態。 – Christopher
@romainl:Google把我帶到了這個頁面,所以我真的感謝那個傢伙。 – ereOn