使用 VS Code
作为 difftool
对于Perforce来说,你可以在P4偏好对话框中写。
Location: Path to exe
Arguments: -n -d %1 %2
但你写什么来使用 VS Code
作为合并工具,P4说它必须包括 %1 %2 and %r
?
我在google了一下,看看VSCode有没有合并选项,貌似没有。 https:/github.commicrosoftvscodeissues37350
您最好的选择是使用命令行解析,让Perforce进行合并,生成一个已经插入了冲突标记的文件,然后使用VSCode作为编辑器。
C:\Perforce\test\merge>p4 sync foo.txt
//stream/main/merge/foo.txt#2 - is opened and not being changed
... //stream/main/merge/foo.txt - must resolve #2 before submitting
C:\Perforce\test\merge>p4 set P4EDITOR="C:\Program Files\Microsoft VS Code\Code.exe -n -w"
C:\Perforce\test\merge>p4 resolve
c:\Perforce\test\merge\foo.txt - merging //stream/main/merge/foo.txt#2
Diff chunks: 0 yours + 0 theirs + 0 both + 1 conflicting
Accept(a) Edit(e) Diff(d) Merge (m) Skip(s) Help(?) e: e
或者你可以通过以下方法制作一个假的VSCode合并工具 p4 merge3
(或者说 diff3
或任何其他可以将其输出写成纯文本格式的合并工具),然后在 VSCode 中打开结果。
C:\Perforce\test\merge>cat vsmerge.bat
@p4 merge3 %1 %2 %3 > %4
@code -n -w %4
C:\Perforce\test\merge>p4 set P4MERGE=vsmerge.bat
C:\Perforce\test\merge>p4 resolve
c:\Perforce\test\merge\foo.txt - merging //stream/main/merge/foo.txt#2
Diff chunks: 0 yours + 0 theirs + 0 both + 1 conflicting
Accept(a) Edit(e) Diff(d) Merge (m) Skip(s) Help(?) e: m
这与使用VSCode作为编辑器并选择 "e "产生的结果基本相同,但如果你只想使用VSCode进行合并,而不想让它在你编辑表格时弹出,那么这样做可能更可取。