From 472039d6de079419d09947d6973326e02d0117c8 Mon Sep 17 00:00:00 2001
From: Daniel Gustafsson <dgustafsson@postgresql.org>
Date: Sat, 24 Oct 2026 22:47:44 +0200
Subject: [PATCH] Remove git-external-diff from tools directory

The git-external-diff bash script could not be executed due to syntax
errors without it being reported, which indicates that it hasn't been
used by anyone in a long time.  Rather than spending energy on fixing
dead code, remove it.

Reported-by: zmuxuny <xiahoumuxuan@gmail.com>
Discussion: https://postgr.es/m/CAMPOERnKK-vNtc_Ooddb9WGbDepGi1=pxOFfiGrb4_Cqzyu69w@mail.gmail.com
---
 src/tools/git-external-diff | 59 -------------------------------------
 1 file changed, 59 deletions(-)
 delete mode 100644 src/tools/git-external-diff

diff --git a/src/tools/git-external-diff b/src/tools/git-external-diff
deleted file mode 100644
index 39ddd01b3d3..00000000000
--- a/src/tools/git-external-diff
+++ /dev/null
@@ -1,59 +0,0 @@
-#!/bin/bash
-
-# This script is used to produce git context diffs
-
-# Supplied parameters:
-# $1   $2       $3       $4       $5       $6       $7
-# path old-file old-hash old-mode new-file new-hash new-mode
-# 'path' is the git-tree-relative path of the file being diff'ed
-
-=comment
-
-This info is copied from the old wiki page on Working with git:
-
-Context diffs with Git
-
-Copy git-external-diff into libexec/git-core/ of your git installation
-and configure git to use that wrapper with:
-
-    git config [--global] diff.external git-external-diff
-
---global makes the configuration global for your user - otherwise it is
-just configured for the current repository.
-
-For every command which displays diffs in some way you can use the
-parameter "--[no-]-ext-diff" to enable respectively disable using the
-external diff command.
-
-For the git diff command --ext-diff is enabled by default - for any
-other command like git log -p or git format-patch it is not!
-
-This method should work on all platforms supported by git.
-
-If you do not want to configure the external wrapper permanently or you
-want to overwrite it you can also invoke git like:
-
-    export GIT_EXTERNAL_DIFF=git-external-diff
-    git diff --[no-]ext-diff
-
-Alternatively, configure a git alias in ~/.gitconfig or .git/config:
-
-    [alias]
-        cdiff = !GIT_EXTERNAL_DIFF=git-context-diff git diff
-=cut
-
-old_hash="$3"
-new_hash=$(git hash-object "$5")
-
-# no change?
-[ "$old_hash" = "$new_hash" ] && exit 0
-
-[ "$DIFF_OPTS" = "" ] && DIFF_OPTS='-pcd'
-
-echo "diff --git a/$1 b/$1"
-echo "new file mode $7"
-echo "index ${old_hash:0:7}..${new_hash:0:7}"
-
-diff --label a/"$1" --label b/"$1" $DIFF_OPTS "$2" "$5"
-
-exit 0
-- 
2.39.3 (Apple Git-146)

