Visual Studio代码作为perforce的合并工具。

问题描述 投票:0回答:1

使用 VS Code 作为 difftool 对于Perforce来说,你可以在P4偏好对话框中写。

Location: Path to exe
Arguments: -n -d %1 %2

但你写什么来使用 VS Code 作为合并工具,P4说它必须包括 %1 %2 and %r?

visual-studio-code perforce
1个回答
1
投票

我在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 merge screenshot

或者你可以通过以下方法制作一个假的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进行合并,而不想让它在你编辑表格时弹出,那么这样做可能更可取。

© www.soinside.com 2019 - 2024. All rights reserved.