# [PATCH] mergetools: vscode: new tool

3 messages from 2024-09-02 to 2024-09-03. Participants: Alex Henrie, Johannes Schindelin, Junio C Hamano.
Thread: https://gitlist.dev/t/62035

## Alex Henrie, 2024-09-02 02:59

Subject: [PATCH] mergetools: vscode: new tool
Message-ID: <20240902025918.99657-1-alexhenrie24@gmail.com>
URL: https://gitlist.dev/e/20240902025918.99657-1-alexhenrie24%40gmail.com

```
VSCode has supported three-way merges since 2022, see
<https://github.com/microsoft/vscode/issues/5770#issuecomment-1188658476>.

Although the program binary is located at /usr/bin/code, name the
mergetool "vscode" because the word "code" is too generic and would lead
to confusion. The name "vscode" also matches Git's existing
contrib/vscode directory.

On Windows, VSCode adds the directory that contains code.cmd to %PATH%,
so there is no need to invoke mergetool_find_win32_cmd to search for the
program.

Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
---
 mergetools/vscode | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)
 create mode 100644 mergetools/vscode

diff --git a/mergetools/vscode b/mergetools/vscode
new file mode 100644
index 0000000000..3b39b458d6
--- /dev/null
+++ b/mergetools/vscode
@@ -0,0 +1,19 @@
+diff_cmd () {
+	"$merge_tool_path" --wait --diff "$LOCAL" "$REMOTE"
+}
+
+diff_cmd_help () {
+	echo "Use Visual Studio Code (requires a graphical session)"
+}
+
+merge_cmd () {
+	"$merge_tool_path" --wait --merge "$REMOTE" "$LOCAL" "$BASE" "$MERGED"
+}
+
+merge_cmd_help () {
+	echo "Use Visual Studio Code (requires a graphical session)"
+}
+
+translate_merge_tool_path () {
+	echo code
+}
-- 
2.46.0


```

## Johannes Schindelin, 2024-09-03 11:11

Subject: Re: [PATCH] mergetools: vscode: new tool
Message-ID: <78e1d2b8-4d22-9bc9-ec5d-aaa072cbd393@gmx.de>
URL: https://gitlist.dev/e/78e1d2b8-4d22-9bc9-ec5d-aaa072cbd393%40gmx.de
In-Reply-To: <20240902025918.99657-1-alexhenrie24@gmail.com>

```
Hi Alex,

On Sun, 1 Sep 2024, Alex Henrie wrote:

> VSCode has supported three-way merges since 2022, see
> <https://github.com/microsoft/vscode/issues/5770#issuecomment-1188658476>.
>
> Although the program binary is located at /usr/bin/code, name the
> mergetool "vscode" because the word "code" is too generic and would lead
> to confusion. The name "vscode" also matches Git's existing
> contrib/vscode directory.
>
> On Windows, VSCode adds the directory that contains code.cmd to %PATH%,
> so there is no need to invoke mergetool_find_win32_cmd to search for the
> program.

The commit message and the patch look good to me.

Thank you!
Johannes

>
> Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
> ---
>  mergetools/vscode | 19 +++++++++++++++++++
>  1 file changed, 19 insertions(+)
>  create mode 100644 mergetools/vscode
>
> diff --git a/mergetools/vscode b/mergetools/vscode
> new file mode 100644
> index 0000000000..3b39b458d6
> --- /dev/null
> +++ b/mergetools/vscode
> @@ -0,0 +1,19 @@
> +diff_cmd () {
> +	"$merge_tool_path" --wait --diff "$LOCAL" "$REMOTE"
> +}
> +
> +diff_cmd_help () {
> +	echo "Use Visual Studio Code (requires a graphical session)"
> +}
> +
> +merge_cmd () {
> +	"$merge_tool_path" --wait --merge "$REMOTE" "$LOCAL" "$BASE" "$MERGED"
> +}
> +
> +merge_cmd_help () {
> +	echo "Use Visual Studio Code (requires a graphical session)"
> +}
> +
> +translate_merge_tool_path () {
> +	echo code
> +}
> --
> 2.46.0
>
>

```

## Junio C Hamano, 2024-09-03 15:56

Subject: Re: [PATCH] mergetools: vscode: new tool
Message-ID: <xmqqr0a0n339.fsf@gitster.g>
URL: https://gitlist.dev/e/xmqqr0a0n339.fsf%40gitster.g
In-Reply-To: <78e1d2b8-4d22-9bc9-ec5d-aaa072cbd393@gmx.de>

```
Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:

>> On Windows, VSCode adds the directory that contains code.cmd to %PATH%,
>> so there is no need to invoke mergetool_find_win32_cmd to search for the
>> program.
>
> The commit message and the patch look good to me.

Thanks, both.  Let me mark the topic for 'next'.

```
