# [PATCH 00/25] completion: add missing diff options

83 messages from 2023-06-10 to 2023-06-26. Participants: Philippe Blain via GitGitGadget, Eric Sunshine, Philippe Blain, Junio C Hamano.
Thread: https://gitlist.dev/t/59848

## Philippe Blain via GitGitGadget, 2023-06-10 20:20

Subject: [PATCH 00/25] completion: add missing diff options
Message-ID: <pull.1543.git.1686428484.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/pull.1543.git.1686428484.gitgitgadget%40gmail.com

```
This series adds missing diff options to the Bash completion script.
Completion often serves as a discovery mechanism for options, so it is
beneficial to users if all options are offered by the completion script.

The list of missing options was generated by:

 1. Extracting all diff options from the documentation:
    
    git grep -h --no-column --only-match -e ^--[a-z][a-z-]*
    Documentation/diff-options.txt
    | sort -u > diff-options.txt

 2. Searching for each option in the completion script and visually checking
    which one was missing:
    
    while read p; do echo --- $p ---; echo; git grep --color -p -e $p
    upstream/master contrib/completion/git-completion.bash done <
    diff-options.txt

The only options I left out are --skip-to and --rotate-to, since I agree
with their documentation: they are probably not very useful outside of their
use in 'git difftool'.

Cheers,

Philippe.

Philippe Blain (25):
  completion: add comments describing __git_diff_* globals
  completion: complete --break-rewrites
  completion: complete --cc
  completion: complete --combined-all-paths
  completion: complete --compact-summary
  completion: complete --default-prefix
  completion: complete --find-copies
  completion: complete --find-object
  completion: complete --find-renames
  completion: complete --function-context
  completion: complete --ignore-matching-lines
  completion: complete --irreversible-delete
  completion: complete --ita-invisible-in-index and
    --ita-visible-in-index
  completion: complete --line-prefix
  completion: complete --no-relative
  completion: complete --no-stat
  completion: complete --output
  completion: complete --output-indicator-{context,new,old}
  completion: complete --patch-with-raw
  completion: complete --unified
  completion: complete --ws-error-highlight
  completion: move --pickaxe-{all,regex} to __git_diff_common_options
  completion: complete --diff-merges, its options and --no-diff-merges
  completion: complete --remerge-diff
  diff.c: mention completion above add_diff_options

 contrib/completion/git-completion.bash | 57 ++++++++++++++++++++++----
 diff.c                                 |  3 ++
 2 files changed, 51 insertions(+), 9 deletions(-)


base-commit: fe86abd7511a9a6862d5706c6fa1d9b57a63ba09
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-1543%2Fphil-blain%2Fcompletion-common-diff-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-1543/phil-blain/completion-common-diff-v1
Pull-Request: https://github.com/gitgitgadget/git/pull/1543
-- 
gitgitgadget

```

## Philippe Blain via GitGitGadget, 2023-06-10 20:21

Subject: [PATCH 02/25] completion: complete --break-rewrites
Message-ID: <1f3c9e8d417d2c9f16583da7609e8f322059f1f1.1686428485.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/1f3c9e8d417d2c9f16583da7609e8f322059f1f1.1686428485.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.git.1686428484.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 90fe292459b..f07b00b9c68 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1753,7 +1753,7 @@ __git_diff_common_options="--stat --numstat --shortstat --summary
 			--diff-algorithm=
 			--submodule --submodule= --ignore-submodules
 			--indent-heuristic --no-indent-heuristic
-			--textconv --no-textconv
+			--textconv --no-textconv --break-rewrites
 			--patch --no-patch
 			--anchored=
 "
-- 
gitgitgadget


```

## Philippe Blain via GitGitGadget, 2023-06-10 20:21

Subject: [PATCH 01/25] completion: add comments describing __git_diff_* globals
Message-ID: <4edabc7f15c3ad55c911919bec5a406bb48ad0ee.1686428484.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/4edabc7f15c3ad55c911919bec5a406bb48ad0ee.1686428484.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.git.1686428484.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

Add descriptive comments for '__git_diff_common_options' and
'__git_diff_difftool_options', so that it is clearer when looking at
these variables to know in which command's completion they are used.

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index dc95c34cc85..90fe292459b 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1733,6 +1733,7 @@ __git_color_moved_opts="no default plain blocks zebra dimmed-zebra"
 __git_color_moved_ws_opts="no ignore-space-at-eol ignore-space-change
 			ignore-all-space allow-indentation-change"
 
+# Options for the diff machinery (diff, log, show, stash, range-diff, ...)
 __git_diff_common_options="--stat --numstat --shortstat --summary
 			--patch-with-stat --name-only --name-status --color
 			--no-color --color-words --no-renames --check
@@ -1757,6 +1758,7 @@ __git_diff_common_options="--stat --numstat --shortstat --summary
 			--anchored=
 "
 
+# Options for diff/difftool
 __git_diff_difftool_options="--cached --staged --pickaxe-all --pickaxe-regex
 			--base --ours --theirs --no-index --relative --merge-base
 			$__git_diff_common_options"
-- 
gitgitgadget


```

## Philippe Blain via GitGitGadget, 2023-06-10 20:21

Subject: [PATCH 05/25] completion: complete --compact-summary
Message-ID: <63d70d645e25a2e7f9d3dfac7f6b01c3bd27fd7e.1686428485.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/63d70d645e25a2e7f9d3dfac7f6b01c3bd27fd7e.1686428485.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.git.1686428484.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 58ce64de9e2..4c43d13eef4 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1755,7 +1755,7 @@ __git_diff_common_options="--stat --numstat --shortstat --summary
 			--indent-heuristic --no-indent-heuristic
 			--textconv --no-textconv --break-rewrites
 			--patch --no-patch --cc --combined-all-paths
-			--anchored=
+			--anchored= --compact-summary
 "
 
 # Options for diff/difftool
-- 
gitgitgadget


```

## Philippe Blain via GitGitGadget, 2023-06-10 20:21

Subject: [PATCH 06/25] completion: complete --default-prefix
Message-ID: <7296a3a8c9da5287cca85c61af342dfc647fb2a8.1686428485.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/7296a3a8c9da5287cca85c61af342dfc647fb2a8.1686428485.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.git.1686428484.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 4c43d13eef4..6af04932a0a 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1750,7 +1750,7 @@ __git_diff_common_options="--stat --numstat --shortstat --summary
 			--raw --word-diff --word-diff-regex=
 			--dirstat --dirstat= --dirstat-by-file
 			--dirstat-by-file= --cumulative
-			--diff-algorithm=
+			--diff-algorithm= --default-prefix
 			--submodule --submodule= --ignore-submodules
 			--indent-heuristic --no-indent-heuristic
 			--textconv --no-textconv --break-rewrites
-- 
gitgitgadget


```

## Philippe Blain via GitGitGadget, 2023-06-10 20:21

Subject: [PATCH 07/25] completion: complete --find-copies
Message-ID: <1f9b213cee5a4c6325c7fa9528180e46aab7805a.1686428485.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/1f9b213cee5a4c6325c7fa9528180e46aab7805a.1686428485.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.git.1686428484.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 1 +
 1 file changed, 1 insertion(+)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 6af04932a0a..dd6e12ad8f6 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1740,6 +1740,7 @@ __git_diff_common_options="--stat --numstat --shortstat --summary
 			--color-moved --color-moved= --no-color-moved
 			--color-moved-ws= --no-color-moved-ws
 			--full-index --binary --abbrev --diff-filter=
+			--find-copies
 			--find-copies-harder --ignore-cr-at-eol
 			--text --ignore-space-at-eol --ignore-space-change
 			--ignore-all-space --ignore-blank-lines --exit-code
-- 
gitgitgadget


```

## Philippe Blain via GitGitGadget, 2023-06-10 20:21

Subject: [PATCH 04/25] completion: complete --combined-all-paths
Message-ID: <51024ee2f2c4862d223e10ae4f193b8e0aeb1c60.1686428485.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/51024ee2f2c4862d223e10ae4f193b8e0aeb1c60.1686428485.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.git.1686428484.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index b61c54e37f7..58ce64de9e2 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1754,7 +1754,7 @@ __git_diff_common_options="--stat --numstat --shortstat --summary
 			--submodule --submodule= --ignore-submodules
 			--indent-heuristic --no-indent-heuristic
 			--textconv --no-textconv --break-rewrites
-			--patch --no-patch --cc
+			--patch --no-patch --cc --combined-all-paths
 			--anchored=
 "
 
-- 
gitgitgadget


```

## Philippe Blain via GitGitGadget, 2023-06-10 20:21

Subject: [PATCH 08/25] completion: complete --find-object
Message-ID: <53b1c348f822ca32228cdb0f40b03c9ae9ec59c8.1686428485.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/53b1c348f822ca32228cdb0f40b03c9ae9ec59c8.1686428485.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.git.1686428484.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index dd6e12ad8f6..392fdbedd9f 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1740,7 +1740,7 @@ __git_diff_common_options="--stat --numstat --shortstat --summary
 			--color-moved --color-moved= --no-color-moved
 			--color-moved-ws= --no-color-moved-ws
 			--full-index --binary --abbrev --diff-filter=
-			--find-copies
+			--find-copies --find-object
 			--find-copies-harder --ignore-cr-at-eol
 			--text --ignore-space-at-eol --ignore-space-change
 			--ignore-all-space --ignore-blank-lines --exit-code
-- 
gitgitgadget


```

## Philippe Blain via GitGitGadget, 2023-06-10 20:21

Subject: [PATCH 09/25] completion: complete --find-renames
Message-ID: <053f9e8620aa369f04eff8f1235eb57d15fe8755.1686428485.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/053f9e8620aa369f04eff8f1235eb57d15fe8755.1686428485.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.git.1686428484.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 392fdbedd9f..0fa86dcde6f 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1740,7 +1740,7 @@ __git_diff_common_options="--stat --numstat --shortstat --summary
 			--color-moved --color-moved= --no-color-moved
 			--color-moved-ws= --no-color-moved-ws
 			--full-index --binary --abbrev --diff-filter=
-			--find-copies --find-object
+			--find-copies --find-object --find-renames
 			--find-copies-harder --ignore-cr-at-eol
 			--text --ignore-space-at-eol --ignore-space-change
 			--ignore-all-space --ignore-blank-lines --exit-code
-- 
gitgitgadget


```

## Philippe Blain via GitGitGadget, 2023-06-10 20:21

Subject: [PATCH 03/25] completion: complete --cc
Message-ID: <d38823dd116e4579bbbeb96ff7b1eae8116681bb.1686428485.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/d38823dd116e4579bbbeb96ff7b1eae8116681bb.1686428485.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.git.1686428484.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index f07b00b9c68..b61c54e37f7 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1754,7 +1754,7 @@ __git_diff_common_options="--stat --numstat --shortstat --summary
 			--submodule --submodule= --ignore-submodules
 			--indent-heuristic --no-indent-heuristic
 			--textconv --no-textconv --break-rewrites
-			--patch --no-patch
+			--patch --no-patch --cc
 			--anchored=
 "
 
-- 
gitgitgadget


```

## Philippe Blain via GitGitGadget, 2023-06-10 20:21

Subject: [PATCH 11/25] completion: complete --ignore-matching-lines
Message-ID: <8bd72945a2ff26c96cecc83abc07299ab51d262d.1686428485.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/8bd72945a2ff26c96cecc83abc07299ab51d262d.1686428485.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.git.1686428484.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 2610a55487b..b4d0643b049 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1756,7 +1756,7 @@ __git_diff_common_options="--stat --numstat --shortstat --summary
 			--indent-heuristic --no-indent-heuristic
 			--textconv --no-textconv --break-rewrites
 			--patch --no-patch --cc --combined-all-paths
-			--anchored= --compact-summary
+			--anchored= --compact-summary --ignore-matching-lines=
 "
 
 # Options for diff/difftool
-- 
gitgitgadget


```

## Philippe Blain via GitGitGadget, 2023-06-10 20:21

Subject: [PATCH 12/25] completion: complete --irreversible-delete
Message-ID: <5d32e972a0c6e099f1d30d4a2a8cbff6e204b09e.1686428485.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/5d32e972a0c6e099f1d30d4a2a8cbff6e204b09e.1686428485.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.git.1686428484.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 1 +
 1 file changed, 1 insertion(+)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index b4d0643b049..e74636ebe86 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1757,6 +1757,7 @@ __git_diff_common_options="--stat --numstat --shortstat --summary
 			--textconv --no-textconv --break-rewrites
 			--patch --no-patch --cc --combined-all-paths
 			--anchored= --compact-summary --ignore-matching-lines=
+			--irreversible-delete
 "
 
 # Options for diff/difftool
-- 
gitgitgadget


```

## Philippe Blain via GitGitGadget, 2023-06-10 20:21

Subject: [PATCH 10/25] completion: complete --function-context
Message-ID: <2503d990e5c7d1fb5bbf06493951204e7c00ea09.1686428485.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/2503d990e5c7d1fb5bbf06493951204e7c00ea09.1686428485.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.git.1686428484.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 0fa86dcde6f..2610a55487b 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1746,7 +1746,7 @@ __git_diff_common_options="--stat --numstat --shortstat --summary
 			--ignore-all-space --ignore-blank-lines --exit-code
 			--quiet --ext-diff --no-ext-diff
 			--no-prefix --src-prefix= --dst-prefix=
-			--inter-hunk-context=
+			--inter-hunk-context= --function-context
 			--patience --histogram --minimal
 			--raw --word-diff --word-diff-regex=
 			--dirstat --dirstat= --dirstat-by-file
-- 
gitgitgadget


```

## Philippe Blain via GitGitGadget, 2023-06-10 20:21

Subject: [PATCH 13/25] completion: complete --ita-invisible-in-index and --ita-visible-in-index
Message-ID: <fd94e9ae7830e98397c0f79cd3e0a519dc1fcd5f.1686428485.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/fd94e9ae7830e98397c0f79cd3e0a519dc1fcd5f.1686428485.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.git.1686428484.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

The options --ita-invisible-in-index and --ita-visible-in-index are
listed in diff-options.txt and so are included in the documentation of
commands which include this file (diff, diff-*, log, show, format-patch)
but they only make sense for diffs relating to the index. As such, add
them to '__git_diff_difftool_options' instead of
'__git_diff_common_options' since it makes more sense to add them there.

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 1 +
 1 file changed, 1 insertion(+)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index e74636ebe86..7246ced14ad 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1763,6 +1763,7 @@ __git_diff_common_options="--stat --numstat --shortstat --summary
 # Options for diff/difftool
 __git_diff_difftool_options="--cached --staged --pickaxe-all --pickaxe-regex
 			--base --ours --theirs --no-index --relative --merge-base
+			--ita-invisible-in-index --ita-visible-in-index
 			$__git_diff_common_options"
 
 _git_diff ()
-- 
gitgitgadget


```

## Philippe Blain via GitGitGadget, 2023-06-10 20:21

Subject: [PATCH 14/25] completion: complete --line-prefix
Message-ID: <560ad1cd0179f8615dadd8b252b5c3f8cef6822e.1686428485.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/560ad1cd0179f8615dadd8b252b5c3f8cef6822e.1686428485.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.git.1686428484.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 7246ced14ad..13d6730f33d 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1757,7 +1757,7 @@ __git_diff_common_options="--stat --numstat --shortstat --summary
 			--textconv --no-textconv --break-rewrites
 			--patch --no-patch --cc --combined-all-paths
 			--anchored= --compact-summary --ignore-matching-lines=
-			--irreversible-delete
+			--irreversible-delete --line-prefix
 "
 
 # Options for diff/difftool
-- 
gitgitgadget


```

## Philippe Blain via GitGitGadget, 2023-06-10 20:21

Subject: [PATCH 16/25] completion: complete --no-stat
Message-ID: <0f16a466fd9bdafe0365ee9cf1bce81fc11767d1.1686428485.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/0f16a466fd9bdafe0365ee9cf1bce81fc11767d1.1686428485.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.git.1686428484.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index f4e773cb997..ec2e4c9e711 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1758,7 +1758,7 @@ __git_diff_common_options="--stat --numstat --shortstat --summary
 			--textconv --no-textconv --break-rewrites
 			--patch --no-patch --cc --combined-all-paths
 			--anchored= --compact-summary --ignore-matching-lines=
-			--irreversible-delete --line-prefix
+			--irreversible-delete --line-prefix --no-stat
 "
 
 # Options for diff/difftool
-- 
gitgitgadget


```

## Philippe Blain via GitGitGadget, 2023-06-10 20:21

Subject: [PATCH 15/25] completion: complete --no-relative
Message-ID: <d3242e1f949815e6c2c036146da2f5faff92d94f.1686428485.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/d3242e1f949815e6c2c036146da2f5faff92d94f.1686428485.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.git.1686428484.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

Add --no-relative to __git_diff_common_options in the completion script,
and move --relative from __git_diff_difftool_options to
__git_diff_common_options since it applies to more than just diff and
difftool.

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 13d6730f33d..f4e773cb997 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1741,6 +1741,7 @@ __git_diff_common_options="--stat --numstat --shortstat --summary
 			--color-moved-ws= --no-color-moved-ws
 			--full-index --binary --abbrev --diff-filter=
 			--find-copies --find-object --find-renames
+			--no-relative --relative
 			--find-copies-harder --ignore-cr-at-eol
 			--text --ignore-space-at-eol --ignore-space-change
 			--ignore-all-space --ignore-blank-lines --exit-code
@@ -1762,7 +1763,7 @@ __git_diff_common_options="--stat --numstat --shortstat --summary
 
 # Options for diff/difftool
 __git_diff_difftool_options="--cached --staged --pickaxe-all --pickaxe-regex
-			--base --ours --theirs --no-index --relative --merge-base
+			--base --ours --theirs --no-index --merge-base
 			--ita-invisible-in-index --ita-visible-in-index
 			$__git_diff_common_options"
 
-- 
gitgitgadget


```

## Philippe Blain via GitGitGadget, 2023-06-10 20:21

Subject: [PATCH 17/25] completion: complete --output
Message-ID: <761c75d4aec988609a105db0f039ad9f15d2337e.1686428485.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/761c75d4aec988609a105db0f039ad9f15d2337e.1686428485.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.git.1686428484.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 1 +
 1 file changed, 1 insertion(+)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index ec2e4c9e711..a34432796bf 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1759,6 +1759,7 @@ __git_diff_common_options="--stat --numstat --shortstat --summary
 			--patch --no-patch --cc --combined-all-paths
 			--anchored= --compact-summary --ignore-matching-lines=
 			--irreversible-delete --line-prefix --no-stat
+			--output=
 "
 
 # Options for diff/difftool
-- 
gitgitgadget


```

## Philippe Blain via GitGitGadget, 2023-06-10 20:21

Subject: [PATCH 19/25] completion: complete --patch-with-raw
Message-ID: <807b8201d145a21c629797067cee21d1d1b9a0d4.1686428485.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/807b8201d145a21c629797067cee21d1d1b9a0d4.1686428485.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.git.1686428484.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index a69421cd740..c0d2678d320 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1741,7 +1741,7 @@ __git_diff_common_options="--stat --numstat --shortstat --summary
 			--color-moved-ws= --no-color-moved-ws
 			--full-index --binary --abbrev --diff-filter=
 			--find-copies --find-object --find-renames
-			--no-relative --relative
+			--no-relative --relative --patch-with-raw
 			--find-copies-harder --ignore-cr-at-eol
 			--text --ignore-space-at-eol --ignore-space-change
 			--ignore-all-space --ignore-blank-lines --exit-code
-- 
gitgitgadget


```

## Philippe Blain via GitGitGadget, 2023-06-10 20:21

Subject: [PATCH 18/25] completion: complete --output-indicator-{context,new,old}
Message-ID: <f8d430639bcec85d822747aec161f1069255c10b.1686428485.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/f8d430639bcec85d822747aec161f1069255c10b.1686428485.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.git.1686428484.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index a34432796bf..a69421cd740 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1759,7 +1759,8 @@ __git_diff_common_options="--stat --numstat --shortstat --summary
 			--patch --no-patch --cc --combined-all-paths
 			--anchored= --compact-summary --ignore-matching-lines=
 			--irreversible-delete --line-prefix --no-stat
-			--output=
+			--output= --output-indicator-context=
+			--output-indicator-new= --output-indicator-old=
 "
 
 # Options for diff/difftool
-- 
gitgitgadget


```

## Philippe Blain via GitGitGadget, 2023-06-10 20:21

Subject: [PATCH 20/25] completion: complete --unified
Message-ID: <19507b1a2109f419ba5c628c32db46f96903e166.1686428485.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/19507b1a2109f419ba5c628c32db46f96903e166.1686428485.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.git.1686428484.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index c0d2678d320..230d5807860 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1745,7 +1745,7 @@ __git_diff_common_options="--stat --numstat --shortstat --summary
 			--find-copies-harder --ignore-cr-at-eol
 			--text --ignore-space-at-eol --ignore-space-change
 			--ignore-all-space --ignore-blank-lines --exit-code
-			--quiet --ext-diff --no-ext-diff
+			--quiet --ext-diff --no-ext-diff --unified=
 			--no-prefix --src-prefix= --dst-prefix=
 			--inter-hunk-context= --function-context
 			--patience --histogram --minimal
-- 
gitgitgadget


```

## Philippe Blain via GitGitGadget, 2023-06-10 20:21

Subject: [PATCH 21/25] completion: complete --ws-error-highlight
Message-ID: <f8246a2a581f3bb1e424da6f2cf6d8f5b377f2c6.1686428485.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/f8246a2a581f3bb1e424da6f2cf6d8f5b377f2c6.1686428485.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.git.1686428484.gitgitgadget@gmail.com>

```
From: Philippe Blain <philippe.blain@canada.ca>

Add --ws-error-highlight= to the list in __git_diff_common_options, and
add the accepted values in a new list __git_ws_error_highlight_opts.

Use __git_ws_error_highlight_opts in _git_diff, _git_log and _git_show
to offer the accepted values.

As noted in fd0bc17557 (completion: add diff --color-moved[-ws],
2020-02-21), there is no easy way to offer completion for several
comma-separated values, so this is limited to completing a single
value.

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 230d5807860..93522558a98 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1733,6 +1733,8 @@ __git_color_moved_opts="no default plain blocks zebra dimmed-zebra"
 __git_color_moved_ws_opts="no ignore-space-at-eol ignore-space-change
 			ignore-all-space allow-indentation-change"
 
+__git_ws_error_highlight_opts="context old new all default"
+
 # Options for the diff machinery (diff, log, show, stash, range-diff, ...)
 __git_diff_common_options="--stat --numstat --shortstat --summary
 			--patch-with-stat --name-only --name-status --color
@@ -1790,6 +1792,10 @@ _git_diff ()
 		__gitcomp "$__git_color_moved_ws_opts" "" "${cur##--color-moved-ws=}"
 		return
 		;;
+	--ws-error-highlight=*)
+		__gitcomp "$__git_ws_error_highlight_opts" "" "${cur##--ws-error-highlight=}"
+		return
+		;;
 	--*)
 		__gitcomp "$__git_diff_difftool_options"
 		return
@@ -2080,6 +2086,10 @@ _git_log ()
 		__gitcomp "$__git_diff_submodule_formats" "" "${cur##--submodule=}"
 		return
 		;;
+	--ws-error-highlight=*)
+		__gitcomp "$__git_ws_error_highlight_opts" "" "${cur##--ws-error-highlight=}"
+		return
+		;;
 	--no-walk=*)
 		__gitcomp "sorted unsorted" "" "${cur##--no-walk=}"
 		return
@@ -3000,6 +3010,10 @@ _git_show ()
 		__gitcomp "$__git_color_moved_ws_opts" "" "${cur##--color-moved-ws=}"
 		return
 		;;
+	--ws-error-highlight=*)
+		__gitcomp "$__git_ws_error_highlight_opts" "" "${cur##--ws-error-highlight=}"
+		return
+		;;
 	--*)
 		__gitcomp "--pretty= --format= --abbrev-commit --no-abbrev-commit
 			--oneline --show-signature
-- 
gitgitgadget


```

## Philippe Blain via GitGitGadget, 2023-06-10 20:21

Subject: [PATCH 22/25] completion: move --pickaxe-{all,regex} to __git_diff_common_options
Message-ID: <cbe0c1b3e5fc0de8dd30253e8967360d2fb1f095.1686428485.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/cbe0c1b3e5fc0de8dd30253e8967360d2fb1f095.1686428485.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.git.1686428484.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

The options --pickaxe-all and --pickaxe-regex are listed in
__git_diff_difftool_options and repeated in _git_log. Move them to
__git_diff_common_options instead, which makes them available
automatically in the completion of other commands referencing this
variable.

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 93522558a98..8dd54fd3ae0 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1763,10 +1763,12 @@ __git_diff_common_options="--stat --numstat --shortstat --summary
 			--irreversible-delete --line-prefix --no-stat
 			--output= --output-indicator-context=
 			--output-indicator-new= --output-indicator-old=
+			--ws-error-highlight=
+			--pickaxe-all --pickaxe-regex
 "
 
 # Options for diff/difftool
-__git_diff_difftool_options="--cached --staged --pickaxe-all --pickaxe-regex
+__git_diff_difftool_options="--cached --staged
 			--base --ours --theirs --no-index --merge-base
 			--ita-invisible-in-index --ita-visible-in-index
 			$__git_diff_common_options"
@@ -2115,7 +2117,6 @@ _git_log ()
 			--expand-tabs --expand-tabs= --no-expand-tabs
 			$merge
 			$__git_diff_common_options
-			--pickaxe-all --pickaxe-regex
 			"
 		return
 		;;
-- 
gitgitgadget


```

## Philippe Blain via GitGitGadget, 2023-06-10 20:21

Subject: [PATCH 24/25] completion: complete --remerge-diff
Message-ID: <d66068db0a4ab531fdd26b9b22a79d9bb1b5fc4c.1686428485.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/d66068db0a4ab531fdd26b9b22a79d9bb1b5fc4c.1686428485.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.git.1686428484.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

--remerge-diff only makes sense for 'git log' and 'git show', so add it
to __git_log_show_options which is referenced in the completion for
these two commands.

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 7b7f3f838e0..38b6bac9154 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -2042,7 +2042,7 @@ __git_log_shortlog_options="
 "
 # Options accepted by log and show
 __git_log_show_options="
-	--diff-merges --diff-merges= --no-diff-merges
+	--diff-merges --diff-merges= --no-diff-merges --remerge-diff
 "
 
 __git_diff_merges_opts="off none on first-parent 1 separate m combined c dense-combined cc remerge r"
-- 
gitgitgadget


```

## Philippe Blain via GitGitGadget, 2023-06-10 20:21

Subject: [PATCH 23/25] completion: complete --diff-merges, its options and --no-diff-merges
Message-ID: <5dc1e541d1606807e188015ce51da4f2c7f8ff5b.1686428485.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/5dc1e541d1606807e188015ce51da4f2c7f8ff5b.1686428485.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.git.1686428484.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

The flgs --[no-]diff-merges only make sense for 'git log' and 'git
show', so add a new variable __git_log_show_options for options only
relevant to these two commands, and add them there. Also add
__git_diff_merges_opts and list the accepted values for --diff-merges,
and use it in _git_log and _git_show.

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 8dd54fd3ae0..7b7f3f838e0 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -2040,6 +2040,12 @@ __git_log_shortlog_options="
 	--author= --committer= --grep=
 	--all-match --invert-grep
 "
+# Options accepted by log and show
+__git_log_show_options="
+	--diff-merges --diff-merges= --no-diff-merges
+"
+
+__git_diff_merges_opts="off none on first-parent 1 separate m combined c dense-combined cc remerge r"
 
 __git_log_pretty_formats="oneline short medium full fuller reference email raw format: tformat: mboxrd"
 __git_log_date_formats="relative iso8601 iso8601-strict rfc2822 short local default human raw unix auto: format:"
@@ -2096,11 +2102,16 @@ _git_log ()
 		__gitcomp "sorted unsorted" "" "${cur##--no-walk=}"
 		return
 		;;
+	--diff-merges=*)
+                __gitcomp "$__git_diff_merges_opts" "" "${cur##--diff-merges=}"
+                return
+                ;;
 	--*)
 		__gitcomp "
 			$__git_log_common_options
 			$__git_log_shortlog_options
 			$__git_log_gitk_options
+			$__git_log_show_options
 			--root --topo-order --date-order --reverse
 			--follow --full-diff
 			--abbrev-commit --no-abbrev-commit --abbrev=
@@ -3015,10 +3026,15 @@ _git_show ()
 		__gitcomp "$__git_ws_error_highlight_opts" "" "${cur##--ws-error-highlight=}"
 		return
 		;;
+	--diff-merges=*)
+                __gitcomp "$__git_diff_merges_opts" "" "${cur##--diff-merges=}"
+                return
+                ;;
 	--*)
 		__gitcomp "--pretty= --format= --abbrev-commit --no-abbrev-commit
 			--oneline --show-signature
 			--expand-tabs --expand-tabs= --no-expand-tabs
+			$__git_log_show_options
 			$__git_diff_common_options
 			"
 		return
-- 
gitgitgadget


```

## Philippe Blain via GitGitGadget, 2023-06-10 20:21

Subject: [PATCH 25/25] diff.c: mention completion above add_diff_options
Message-ID: <93b6233f0dd89d36c0eec7a4768f8b7d22db755b.1686428485.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/93b6233f0dd89d36c0eec7a4768f8b7d22db755b.1686428485.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.git.1686428484.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

Add a comment on top of add_diff_options, where common diff options are
listed, mentioning __git_diff_common_options in the completion script,
in the hope that contributors update it when they add new diff flags.

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 diff.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/diff.c b/diff.c
index 3c88c37908d..fda7bc91f85 100644
--- a/diff.c
+++ b/diff.c
@@ -5491,6 +5491,9 @@ static int diff_opt_rotate_to(const struct option *opt, const char *arg, int uns
 	return 0;
 }
 
+/* Consider adding new flags to __git_diff_common_options
+ * in contrib/completion/git-completion.bash
+ */
 struct option *add_diff_options(const struct option *opts,
 				struct diff_options *options)
 {
-- 
gitgitgadget

```

## Eric Sunshine, 2023-06-11 02:35

Subject: Re: [PATCH 23/25] completion: complete --diff-merges, its options and --no-diff-merges
Message-ID: <CAPig+cQ_A1i5NNmaLUmGt+h-J0PugrFX7jkKJ=dBDg3Ygk2hJQ@mail.gmail.com>
URL: https://gitlist.dev/e/CAPig%2BcQ_A1i5NNmaLUmGt%2Bh-J0PugrFX7jkKJ%3DdBDg3Ygk2hJQ%40mail.gmail.com
In-Reply-To: <5dc1e541d1606807e188015ce51da4f2c7f8ff5b.1686428485.git.gitgitgadget@gmail.com>

```
On Sat, Jun 10, 2023 at 4:24 PM Philippe Blain via GitGitGadget
<gitgitgadget@gmail.com> wrote:
> The flgs --[no-]diff-merges only make sense for 'git log' and 'git

s/flgs/flags/

> show', so add a new variable __git_log_show_options for options only
> relevant to these two commands, and add them there. Also add
> __git_diff_merges_opts and list the accepted values for --diff-merges,
> and use it in _git_log and _git_show.
>
> Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>

```

## Eric Sunshine, 2023-06-11 02:36

Subject: Re: [PATCH 25/25] diff.c: mention completion above add_diff_options
Message-ID: <CAPig+cRPrf0dQbGKDvKkTBAXVVLWX_YcGEvg6Mcwuwe3k7bLnQ@mail.gmail.com>
URL: https://gitlist.dev/e/CAPig%2BcRPrf0dQbGKDvKkTBAXVVLWX_YcGEvg6Mcwuwe3k7bLnQ%40mail.gmail.com
In-Reply-To: <93b6233f0dd89d36c0eec7a4768f8b7d22db755b.1686428485.git.gitgitgadget@gmail.com>

```
On Sat, Jun 10, 2023 at 4:24 PM Philippe Blain via GitGitGadget
<gitgitgadget@gmail.com> wrote:
> Add a comment on top of add_diff_options, where common diff options are
> listed, mentioning __git_diff_common_options in the completion script,
> in the hope that contributors update it when they add new diff flags.
>
> Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
> ---
> diff --git a/diff.c b/diff.c
> @@ -5491,6 +5491,9 @@ static int diff_opt_rotate_to(const struct option *opt, const char *arg, int uns
>         return 0;
>  }
>
> +/* Consider adding new flags to __git_diff_common_options
> + * in contrib/completion/git-completion.bash
> + */

Style:

    /*
     * This is a multi-line
     * comment.
     */

```

## Philippe Blain, 2023-06-11 14:56

Subject: Re: [PATCH 23/25] completion: complete --diff-merges, its options and --no-diff-merges
Message-ID: <76eeff98-3e6c-a1dd-6498-b6d88c61fe81@gmail.com>
URL: https://gitlist.dev/e/76eeff98-3e6c-a1dd-6498-b6d88c61fe81%40gmail.com
In-Reply-To: <CAPig+cQ_A1i5NNmaLUmGt+h-J0PugrFX7jkKJ=dBDg3Ygk2hJQ@mail.gmail.com>

```
Hi Eric,

Le 2023-06-10 à 22:35, Eric Sunshine a écrit :
> On Sat, Jun 10, 2023 at 4:24 PM Philippe Blain via GitGitGadget
> <gitgitgadget@gmail.com> wrote:
>> The flgs --[no-]diff-merges only make sense for 'git log' and 'git
> 
> s/flgs/flags/
> 

Thanks, I fixed this as well as the styling of the comment on patch 25.

Philippe.

```

## Philippe Blain, 2023-06-12 12:49

Subject: Re: [PATCH 21/25] completion: complete --ws-error-highlight
Message-ID: <1a290787-9756-3d07-f95f-3915299cdb8b@gmail.com>
URL: https://gitlist.dev/e/1a290787-9756-3d07-f95f-3915299cdb8b%40gmail.com
In-Reply-To: <f8246a2a581f3bb1e424da6f2cf6d8f5b377f2c6.1686428485.git.gitgitgadget@gmail.com>

```


Le 2023-06-10 à 16:21, Philippe Blain via GitGitGadget a écrit :
> From: Philippe Blain <philippe.blain@canada.ca>

This is a operator mistake that has slipped in. I'll resend with correct
author information. Please wait before merging this to seen. 

Thanks,
Philippe.

```

## Philippe Blain via GitGitGadget, 2023-06-12 12:52

Subject: [PATCH v2 01/25] completion: add comments describing __git_diff_* globals
Message-ID: <4edabc7f15c3ad55c911919bec5a406bb48ad0ee.1686574374.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/4edabc7f15c3ad55c911919bec5a406bb48ad0ee.1686574374.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.v2.git.1686574374.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

Add descriptive comments for '__git_diff_common_options' and
'__git_diff_difftool_options', so that it is clearer when looking at
these variables to know in which command's completion they are used.

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index dc95c34cc85..90fe292459b 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1733,6 +1733,7 @@ __git_color_moved_opts="no default plain blocks zebra dimmed-zebra"
 __git_color_moved_ws_opts="no ignore-space-at-eol ignore-space-change
 			ignore-all-space allow-indentation-change"
 
+# Options for the diff machinery (diff, log, show, stash, range-diff, ...)
 __git_diff_common_options="--stat --numstat --shortstat --summary
 			--patch-with-stat --name-only --name-status --color
 			--no-color --color-words --no-renames --check
@@ -1757,6 +1758,7 @@ __git_diff_common_options="--stat --numstat --shortstat --summary
 			--anchored=
 "
 
+# Options for diff/difftool
 __git_diff_difftool_options="--cached --staged --pickaxe-all --pickaxe-regex
 			--base --ours --theirs --no-index --relative --merge-base
 			$__git_diff_common_options"
-- 
gitgitgadget


```

## Philippe Blain via GitGitGadget, 2023-06-12 12:52

Subject: [PATCH v2 02/25] completion: complete --break-rewrites
Message-ID: <1f3c9e8d417d2c9f16583da7609e8f322059f1f1.1686574374.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/1f3c9e8d417d2c9f16583da7609e8f322059f1f1.1686574374.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.v2.git.1686574374.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 90fe292459b..f07b00b9c68 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1753,7 +1753,7 @@ __git_diff_common_options="--stat --numstat --shortstat --summary
 			--diff-algorithm=
 			--submodule --submodule= --ignore-submodules
 			--indent-heuristic --no-indent-heuristic
-			--textconv --no-textconv
+			--textconv --no-textconv --break-rewrites
 			--patch --no-patch
 			--anchored=
 "
-- 
gitgitgadget


```

## Philippe Blain via GitGitGadget, 2023-06-12 12:52

Subject: [PATCH v2 00/25] completion: add missing diff options
Message-ID: <pull.1543.v2.git.1686574374.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/pull.1543.v2.git.1686574374.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.git.1686428484.gitgitgadget@gmail.com>

```
Changes since v1:

 * correted authorship in 21/25
 * fixed typos pointed out by Eric

v1: This series adds missing diff options to the Bash completion script.
Completion often serves as a discovery mechanism for options, so it is
beneficial to users if all options are offered by the completion script.

The list of missing options was generated by:

 1. Extracting all diff options from the documentation:
    
    git grep -h --no-column --only-match -e ^--[a-z][a-z-]*
    Documentation/diff-options.txt
    | sort -u > diff-options.txt

 2. Searching for each option in the completion script and visually checking
    which one was missing:
    
    while read p; do echo --- $p ---; echo; git grep --color -p -e $p
    upstream/master contrib/completion/git-completion.bash done <
    diff-options.txt

The only options I left out are --skip-to and --rotate-to, since I agree
with their documentation: they are probably not very useful outside of their
use in 'git difftool'.

Cheers,

Philippe.

Philippe Blain (25):
  completion: add comments describing __git_diff_* globals
  completion: complete --break-rewrites
  completion: complete --cc
  completion: complete --combined-all-paths
  completion: complete --compact-summary
  completion: complete --default-prefix
  completion: complete --find-copies
  completion: complete --find-object
  completion: complete --find-renames
  completion: complete --function-context
  completion: complete --ignore-matching-lines
  completion: complete --irreversible-delete
  completion: complete --ita-invisible-in-index and
    --ita-visible-in-index
  completion: complete --line-prefix
  completion: complete --no-relative
  completion: complete --no-stat
  completion: complete --output
  completion: complete --output-indicator-{context,new,old}
  completion: complete --patch-with-raw
  completion: complete --unified
  completion: complete --ws-error-highlight
  completion: move --pickaxe-{all,regex} to __git_diff_common_options
  completion: complete --diff-merges, its options and --no-diff-merges
  completion: complete --remerge-diff
  diff.c: mention completion above add_diff_options

 contrib/completion/git-completion.bash | 57 ++++++++++++++++++++++----
 diff.c                                 |  4 ++
 2 files changed, 52 insertions(+), 9 deletions(-)


base-commit: fe86abd7511a9a6862d5706c6fa1d9b57a63ba09
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-1543%2Fphil-blain%2Fcompletion-common-diff-v2
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-1543/phil-blain/completion-common-diff-v2
Pull-Request: https://github.com/gitgitgadget/git/pull/1543

Range-diff vs v1:

  1:  4edabc7f15c =  1:  4edabc7f15c completion: add comments describing __git_diff_* globals
  2:  1f3c9e8d417 =  2:  1f3c9e8d417 completion: complete --break-rewrites
  3:  d38823dd116 =  3:  d38823dd116 completion: complete --cc
  4:  51024ee2f2c =  4:  51024ee2f2c completion: complete --combined-all-paths
  5:  63d70d645e2 =  5:  63d70d645e2 completion: complete --compact-summary
  6:  7296a3a8c9d =  6:  7296a3a8c9d completion: complete --default-prefix
  7:  1f9b213cee5 =  7:  1f9b213cee5 completion: complete --find-copies
  8:  53b1c348f82 =  8:  53b1c348f82 completion: complete --find-object
  9:  053f9e8620a =  9:  053f9e8620a completion: complete --find-renames
 10:  2503d990e5c = 10:  2503d990e5c completion: complete --function-context
 11:  8bd72945a2f = 11:  8bd72945a2f completion: complete --ignore-matching-lines
 12:  5d32e972a0c = 12:  5d32e972a0c completion: complete --irreversible-delete
 13:  fd94e9ae783 = 13:  fd94e9ae783 completion: complete --ita-invisible-in-index and --ita-visible-in-index
 14:  560ad1cd017 = 14:  560ad1cd017 completion: complete --line-prefix
 15:  d3242e1f949 = 15:  d3242e1f949 completion: complete --no-relative
 16:  0f16a466fd9 = 16:  0f16a466fd9 completion: complete --no-stat
 17:  761c75d4aec = 17:  761c75d4aec completion: complete --output
 18:  f8d430639bc = 18:  f8d430639bc completion: complete --output-indicator-{context,new,old}
 19:  807b8201d14 = 19:  807b8201d14 completion: complete --patch-with-raw
 20:  19507b1a210 = 20:  19507b1a210 completion: complete --unified
 21:  f8246a2a581 ! 21:  c78650f215e completion: complete --ws-error-highlight
     @@
       ## Metadata ##
     -Author: Philippe Blain <philippe.blain@canada.ca>
     +Author: Philippe Blain <levraiphilippeblain@gmail.com>
      
       ## Commit message ##
          completion: complete --ws-error-highlight
 22:  cbe0c1b3e5f = 22:  040248a3868 completion: move --pickaxe-{all,regex} to __git_diff_common_options
 23:  5dc1e541d16 ! 23:  808e7db20cf completion: complete --diff-merges, its options and --no-diff-merges
     @@ Metadata
       ## Commit message ##
          completion: complete --diff-merges, its options and --no-diff-merges
      
     -    The flgs --[no-]diff-merges only make sense for 'git log' and 'git
     +    The flags --[no-]diff-merges only make sense for 'git log' and 'git
          show', so add a new variable __git_log_show_options for options only
          relevant to these two commands, and add them there. Also add
          __git_diff_merges_opts and list the accepted values for --diff-merges,
 24:  d66068db0a4 = 24:  d5fc5b04b00 completion: complete --remerge-diff
 25:  93b6233f0dd ! 25:  da2cc42cbd4 diff.c: mention completion above add_diff_options
     @@ diff.c: static int diff_opt_rotate_to(const struct option *opt, const char *arg,
       	return 0;
       }
       
     -+/* Consider adding new flags to __git_diff_common_options
     ++/*
     ++ * Consider adding new flags to __git_diff_common_options
      + * in contrib/completion/git-completion.bash
      + */
       struct option *add_diff_options(const struct option *opts,

-- 
gitgitgadget

```

## Philippe Blain via GitGitGadget, 2023-06-12 12:52

Subject: [PATCH v2 03/25] completion: complete --cc
Message-ID: <d38823dd116e4579bbbeb96ff7b1eae8116681bb.1686574374.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/d38823dd116e4579bbbeb96ff7b1eae8116681bb.1686574374.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.v2.git.1686574374.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index f07b00b9c68..b61c54e37f7 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1754,7 +1754,7 @@ __git_diff_common_options="--stat --numstat --shortstat --summary
 			--submodule --submodule= --ignore-submodules
 			--indent-heuristic --no-indent-heuristic
 			--textconv --no-textconv --break-rewrites
-			--patch --no-patch
+			--patch --no-patch --cc
 			--anchored=
 "
 
-- 
gitgitgadget


```

## Philippe Blain via GitGitGadget, 2023-06-12 12:52

Subject: [PATCH v2 04/25] completion: complete --combined-all-paths
Message-ID: <51024ee2f2c4862d223e10ae4f193b8e0aeb1c60.1686574374.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/51024ee2f2c4862d223e10ae4f193b8e0aeb1c60.1686574374.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.v2.git.1686574374.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index b61c54e37f7..58ce64de9e2 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1754,7 +1754,7 @@ __git_diff_common_options="--stat --numstat --shortstat --summary
 			--submodule --submodule= --ignore-submodules
 			--indent-heuristic --no-indent-heuristic
 			--textconv --no-textconv --break-rewrites
-			--patch --no-patch --cc
+			--patch --no-patch --cc --combined-all-paths
 			--anchored=
 "
 
-- 
gitgitgadget


```

## Philippe Blain via GitGitGadget, 2023-06-12 12:52

Subject: [PATCH v2 06/25] completion: complete --default-prefix
Message-ID: <7296a3a8c9da5287cca85c61af342dfc647fb2a8.1686574374.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/7296a3a8c9da5287cca85c61af342dfc647fb2a8.1686574374.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.v2.git.1686574374.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 4c43d13eef4..6af04932a0a 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1750,7 +1750,7 @@ __git_diff_common_options="--stat --numstat --shortstat --summary
 			--raw --word-diff --word-diff-regex=
 			--dirstat --dirstat= --dirstat-by-file
 			--dirstat-by-file= --cumulative
-			--diff-algorithm=
+			--diff-algorithm= --default-prefix
 			--submodule --submodule= --ignore-submodules
 			--indent-heuristic --no-indent-heuristic
 			--textconv --no-textconv --break-rewrites
-- 
gitgitgadget


```

## Philippe Blain via GitGitGadget, 2023-06-12 12:52

Subject: [PATCH v2 07/25] completion: complete --find-copies
Message-ID: <1f9b213cee5a4c6325c7fa9528180e46aab7805a.1686574374.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/1f9b213cee5a4c6325c7fa9528180e46aab7805a.1686574374.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.v2.git.1686574374.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 1 +
 1 file changed, 1 insertion(+)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 6af04932a0a..dd6e12ad8f6 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1740,6 +1740,7 @@ __git_diff_common_options="--stat --numstat --shortstat --summary
 			--color-moved --color-moved= --no-color-moved
 			--color-moved-ws= --no-color-moved-ws
 			--full-index --binary --abbrev --diff-filter=
+			--find-copies
 			--find-copies-harder --ignore-cr-at-eol
 			--text --ignore-space-at-eol --ignore-space-change
 			--ignore-all-space --ignore-blank-lines --exit-code
-- 
gitgitgadget


```

## Philippe Blain via GitGitGadget, 2023-06-12 12:52

Subject: [PATCH v2 10/25] completion: complete --function-context
Message-ID: <2503d990e5c7d1fb5bbf06493951204e7c00ea09.1686574374.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/2503d990e5c7d1fb5bbf06493951204e7c00ea09.1686574374.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.v2.git.1686574374.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 0fa86dcde6f..2610a55487b 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1746,7 +1746,7 @@ __git_diff_common_options="--stat --numstat --shortstat --summary
 			--ignore-all-space --ignore-blank-lines --exit-code
 			--quiet --ext-diff --no-ext-diff
 			--no-prefix --src-prefix= --dst-prefix=
-			--inter-hunk-context=
+			--inter-hunk-context= --function-context
 			--patience --histogram --minimal
 			--raw --word-diff --word-diff-regex=
 			--dirstat --dirstat= --dirstat-by-file
-- 
gitgitgadget


```

## Philippe Blain via GitGitGadget, 2023-06-12 12:52

Subject: [PATCH v2 08/25] completion: complete --find-object
Message-ID: <53b1c348f822ca32228cdb0f40b03c9ae9ec59c8.1686574374.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/53b1c348f822ca32228cdb0f40b03c9ae9ec59c8.1686574374.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.v2.git.1686574374.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index dd6e12ad8f6..392fdbedd9f 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1740,7 +1740,7 @@ __git_diff_common_options="--stat --numstat --shortstat --summary
 			--color-moved --color-moved= --no-color-moved
 			--color-moved-ws= --no-color-moved-ws
 			--full-index --binary --abbrev --diff-filter=
-			--find-copies
+			--find-copies --find-object
 			--find-copies-harder --ignore-cr-at-eol
 			--text --ignore-space-at-eol --ignore-space-change
 			--ignore-all-space --ignore-blank-lines --exit-code
-- 
gitgitgadget


```

## Philippe Blain via GitGitGadget, 2023-06-12 12:52

Subject: [PATCH v2 09/25] completion: complete --find-renames
Message-ID: <053f9e8620aa369f04eff8f1235eb57d15fe8755.1686574374.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/053f9e8620aa369f04eff8f1235eb57d15fe8755.1686574374.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.v2.git.1686574374.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 392fdbedd9f..0fa86dcde6f 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1740,7 +1740,7 @@ __git_diff_common_options="--stat --numstat --shortstat --summary
 			--color-moved --color-moved= --no-color-moved
 			--color-moved-ws= --no-color-moved-ws
 			--full-index --binary --abbrev --diff-filter=
-			--find-copies --find-object
+			--find-copies --find-object --find-renames
 			--find-copies-harder --ignore-cr-at-eol
 			--text --ignore-space-at-eol --ignore-space-change
 			--ignore-all-space --ignore-blank-lines --exit-code
-- 
gitgitgadget


```

## Philippe Blain via GitGitGadget, 2023-06-12 12:52

Subject: [PATCH v2 05/25] completion: complete --compact-summary
Message-ID: <63d70d645e25a2e7f9d3dfac7f6b01c3bd27fd7e.1686574374.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/63d70d645e25a2e7f9d3dfac7f6b01c3bd27fd7e.1686574374.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.v2.git.1686574374.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 58ce64de9e2..4c43d13eef4 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1755,7 +1755,7 @@ __git_diff_common_options="--stat --numstat --shortstat --summary
 			--indent-heuristic --no-indent-heuristic
 			--textconv --no-textconv --break-rewrites
 			--patch --no-patch --cc --combined-all-paths
-			--anchored=
+			--anchored= --compact-summary
 "
 
 # Options for diff/difftool
-- 
gitgitgadget


```

## Philippe Blain via GitGitGadget, 2023-06-12 12:52

Subject: [PATCH v2 11/25] completion: complete --ignore-matching-lines
Message-ID: <8bd72945a2ff26c96cecc83abc07299ab51d262d.1686574374.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/8bd72945a2ff26c96cecc83abc07299ab51d262d.1686574374.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.v2.git.1686574374.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 2610a55487b..b4d0643b049 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1756,7 +1756,7 @@ __git_diff_common_options="--stat --numstat --shortstat --summary
 			--indent-heuristic --no-indent-heuristic
 			--textconv --no-textconv --break-rewrites
 			--patch --no-patch --cc --combined-all-paths
-			--anchored= --compact-summary
+			--anchored= --compact-summary --ignore-matching-lines=
 "
 
 # Options for diff/difftool
-- 
gitgitgadget


```

## Philippe Blain via GitGitGadget, 2023-06-12 12:52

Subject: [PATCH v2 12/25] completion: complete --irreversible-delete
Message-ID: <5d32e972a0c6e099f1d30d4a2a8cbff6e204b09e.1686574374.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/5d32e972a0c6e099f1d30d4a2a8cbff6e204b09e.1686574374.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.v2.git.1686574374.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 1 +
 1 file changed, 1 insertion(+)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index b4d0643b049..e74636ebe86 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1757,6 +1757,7 @@ __git_diff_common_options="--stat --numstat --shortstat --summary
 			--textconv --no-textconv --break-rewrites
 			--patch --no-patch --cc --combined-all-paths
 			--anchored= --compact-summary --ignore-matching-lines=
+			--irreversible-delete
 "
 
 # Options for diff/difftool
-- 
gitgitgadget


```

## Philippe Blain via GitGitGadget, 2023-06-12 12:52

Subject: [PATCH v2 13/25] completion: complete --ita-invisible-in-index and --ita-visible-in-index
Message-ID: <fd94e9ae7830e98397c0f79cd3e0a519dc1fcd5f.1686574374.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/fd94e9ae7830e98397c0f79cd3e0a519dc1fcd5f.1686574374.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.v2.git.1686574374.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

The options --ita-invisible-in-index and --ita-visible-in-index are
listed in diff-options.txt and so are included in the documentation of
commands which include this file (diff, diff-*, log, show, format-patch)
but they only make sense for diffs relating to the index. As such, add
them to '__git_diff_difftool_options' instead of
'__git_diff_common_options' since it makes more sense to add them there.

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 1 +
 1 file changed, 1 insertion(+)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index e74636ebe86..7246ced14ad 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1763,6 +1763,7 @@ __git_diff_common_options="--stat --numstat --shortstat --summary
 # Options for diff/difftool
 __git_diff_difftool_options="--cached --staged --pickaxe-all --pickaxe-regex
 			--base --ours --theirs --no-index --relative --merge-base
+			--ita-invisible-in-index --ita-visible-in-index
 			$__git_diff_common_options"
 
 _git_diff ()
-- 
gitgitgadget


```

## Philippe Blain via GitGitGadget, 2023-06-12 12:52

Subject: [PATCH v2 14/25] completion: complete --line-prefix
Message-ID: <560ad1cd0179f8615dadd8b252b5c3f8cef6822e.1686574374.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/560ad1cd0179f8615dadd8b252b5c3f8cef6822e.1686574374.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.v2.git.1686574374.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 7246ced14ad..13d6730f33d 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1757,7 +1757,7 @@ __git_diff_common_options="--stat --numstat --shortstat --summary
 			--textconv --no-textconv --break-rewrites
 			--patch --no-patch --cc --combined-all-paths
 			--anchored= --compact-summary --ignore-matching-lines=
-			--irreversible-delete
+			--irreversible-delete --line-prefix
 "
 
 # Options for diff/difftool
-- 
gitgitgadget


```

## Philippe Blain via GitGitGadget, 2023-06-12 12:52

Subject: [PATCH v2 15/25] completion: complete --no-relative
Message-ID: <d3242e1f949815e6c2c036146da2f5faff92d94f.1686574374.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/d3242e1f949815e6c2c036146da2f5faff92d94f.1686574374.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.v2.git.1686574374.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

Add --no-relative to __git_diff_common_options in the completion script,
and move --relative from __git_diff_difftool_options to
__git_diff_common_options since it applies to more than just diff and
difftool.

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 13d6730f33d..f4e773cb997 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1741,6 +1741,7 @@ __git_diff_common_options="--stat --numstat --shortstat --summary
 			--color-moved-ws= --no-color-moved-ws
 			--full-index --binary --abbrev --diff-filter=
 			--find-copies --find-object --find-renames
+			--no-relative --relative
 			--find-copies-harder --ignore-cr-at-eol
 			--text --ignore-space-at-eol --ignore-space-change
 			--ignore-all-space --ignore-blank-lines --exit-code
@@ -1762,7 +1763,7 @@ __git_diff_common_options="--stat --numstat --shortstat --summary
 
 # Options for diff/difftool
 __git_diff_difftool_options="--cached --staged --pickaxe-all --pickaxe-regex
-			--base --ours --theirs --no-index --relative --merge-base
+			--base --ours --theirs --no-index --merge-base
 			--ita-invisible-in-index --ita-visible-in-index
 			$__git_diff_common_options"
 
-- 
gitgitgadget


```

## Philippe Blain via GitGitGadget, 2023-06-12 12:52

Subject: [PATCH v2 16/25] completion: complete --no-stat
Message-ID: <0f16a466fd9bdafe0365ee9cf1bce81fc11767d1.1686574374.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/0f16a466fd9bdafe0365ee9cf1bce81fc11767d1.1686574374.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.v2.git.1686574374.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index f4e773cb997..ec2e4c9e711 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1758,7 +1758,7 @@ __git_diff_common_options="--stat --numstat --shortstat --summary
 			--textconv --no-textconv --break-rewrites
 			--patch --no-patch --cc --combined-all-paths
 			--anchored= --compact-summary --ignore-matching-lines=
-			--irreversible-delete --line-prefix
+			--irreversible-delete --line-prefix --no-stat
 "
 
 # Options for diff/difftool
-- 
gitgitgadget


```

## Philippe Blain via GitGitGadget, 2023-06-12 12:52

Subject: [PATCH v2 17/25] completion: complete --output
Message-ID: <761c75d4aec988609a105db0f039ad9f15d2337e.1686574374.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/761c75d4aec988609a105db0f039ad9f15d2337e.1686574374.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.v2.git.1686574374.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 1 +
 1 file changed, 1 insertion(+)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index ec2e4c9e711..a34432796bf 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1759,6 +1759,7 @@ __git_diff_common_options="--stat --numstat --shortstat --summary
 			--patch --no-patch --cc --combined-all-paths
 			--anchored= --compact-summary --ignore-matching-lines=
 			--irreversible-delete --line-prefix --no-stat
+			--output=
 "
 
 # Options for diff/difftool
-- 
gitgitgadget


```

## Philippe Blain via GitGitGadget, 2023-06-12 12:52

Subject: [PATCH v2 18/25] completion: complete --output-indicator-{context,new,old}
Message-ID: <f8d430639bcec85d822747aec161f1069255c10b.1686574374.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/f8d430639bcec85d822747aec161f1069255c10b.1686574374.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.v2.git.1686574374.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index a34432796bf..a69421cd740 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1759,7 +1759,8 @@ __git_diff_common_options="--stat --numstat --shortstat --summary
 			--patch --no-patch --cc --combined-all-paths
 			--anchored= --compact-summary --ignore-matching-lines=
 			--irreversible-delete --line-prefix --no-stat
-			--output=
+			--output= --output-indicator-context=
+			--output-indicator-new= --output-indicator-old=
 "
 
 # Options for diff/difftool
-- 
gitgitgadget


```

## Philippe Blain via GitGitGadget, 2023-06-12 12:52

Subject: [PATCH v2 19/25] completion: complete --patch-with-raw
Message-ID: <807b8201d145a21c629797067cee21d1d1b9a0d4.1686574374.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/807b8201d145a21c629797067cee21d1d1b9a0d4.1686574374.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.v2.git.1686574374.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index a69421cd740..c0d2678d320 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1741,7 +1741,7 @@ __git_diff_common_options="--stat --numstat --shortstat --summary
 			--color-moved-ws= --no-color-moved-ws
 			--full-index --binary --abbrev --diff-filter=
 			--find-copies --find-object --find-renames
-			--no-relative --relative
+			--no-relative --relative --patch-with-raw
 			--find-copies-harder --ignore-cr-at-eol
 			--text --ignore-space-at-eol --ignore-space-change
 			--ignore-all-space --ignore-blank-lines --exit-code
-- 
gitgitgadget


```

## Philippe Blain via GitGitGadget, 2023-06-12 12:52

Subject: [PATCH v2 20/25] completion: complete --unified
Message-ID: <19507b1a2109f419ba5c628c32db46f96903e166.1686574374.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/19507b1a2109f419ba5c628c32db46f96903e166.1686574374.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.v2.git.1686574374.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index c0d2678d320..230d5807860 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1745,7 +1745,7 @@ __git_diff_common_options="--stat --numstat --shortstat --summary
 			--find-copies-harder --ignore-cr-at-eol
 			--text --ignore-space-at-eol --ignore-space-change
 			--ignore-all-space --ignore-blank-lines --exit-code
-			--quiet --ext-diff --no-ext-diff
+			--quiet --ext-diff --no-ext-diff --unified=
 			--no-prefix --src-prefix= --dst-prefix=
 			--inter-hunk-context= --function-context
 			--patience --histogram --minimal
-- 
gitgitgadget


```

## Philippe Blain via GitGitGadget, 2023-06-12 12:52

Subject: [PATCH v2 21/25] completion: complete --ws-error-highlight
Message-ID: <c78650f215e6f651ac66add302014f145b7dfc3a.1686574374.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/c78650f215e6f651ac66add302014f145b7dfc3a.1686574374.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.v2.git.1686574374.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

Add --ws-error-highlight= to the list in __git_diff_common_options, and
add the accepted values in a new list __git_ws_error_highlight_opts.

Use __git_ws_error_highlight_opts in _git_diff, _git_log and _git_show
to offer the accepted values.

As noted in fd0bc17557 (completion: add diff --color-moved[-ws],
2020-02-21), there is no easy way to offer completion for several
comma-separated values, so this is limited to completing a single
value.

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 230d5807860..93522558a98 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1733,6 +1733,8 @@ __git_color_moved_opts="no default plain blocks zebra dimmed-zebra"
 __git_color_moved_ws_opts="no ignore-space-at-eol ignore-space-change
 			ignore-all-space allow-indentation-change"
 
+__git_ws_error_highlight_opts="context old new all default"
+
 # Options for the diff machinery (diff, log, show, stash, range-diff, ...)
 __git_diff_common_options="--stat --numstat --shortstat --summary
 			--patch-with-stat --name-only --name-status --color
@@ -1790,6 +1792,10 @@ _git_diff ()
 		__gitcomp "$__git_color_moved_ws_opts" "" "${cur##--color-moved-ws=}"
 		return
 		;;
+	--ws-error-highlight=*)
+		__gitcomp "$__git_ws_error_highlight_opts" "" "${cur##--ws-error-highlight=}"
+		return
+		;;
 	--*)
 		__gitcomp "$__git_diff_difftool_options"
 		return
@@ -2080,6 +2086,10 @@ _git_log ()
 		__gitcomp "$__git_diff_submodule_formats" "" "${cur##--submodule=}"
 		return
 		;;
+	--ws-error-highlight=*)
+		__gitcomp "$__git_ws_error_highlight_opts" "" "${cur##--ws-error-highlight=}"
+		return
+		;;
 	--no-walk=*)
 		__gitcomp "sorted unsorted" "" "${cur##--no-walk=}"
 		return
@@ -3000,6 +3010,10 @@ _git_show ()
 		__gitcomp "$__git_color_moved_ws_opts" "" "${cur##--color-moved-ws=}"
 		return
 		;;
+	--ws-error-highlight=*)
+		__gitcomp "$__git_ws_error_highlight_opts" "" "${cur##--ws-error-highlight=}"
+		return
+		;;
 	--*)
 		__gitcomp "--pretty= --format= --abbrev-commit --no-abbrev-commit
 			--oneline --show-signature
-- 
gitgitgadget


```

## Philippe Blain via GitGitGadget, 2023-06-12 12:52

Subject: [PATCH v2 22/25] completion: move --pickaxe-{all,regex} to __git_diff_common_options
Message-ID: <040248a386899a611f7c10243a808624b53f290f.1686574374.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/040248a386899a611f7c10243a808624b53f290f.1686574374.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.v2.git.1686574374.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

The options --pickaxe-all and --pickaxe-regex are listed in
__git_diff_difftool_options and repeated in _git_log. Move them to
__git_diff_common_options instead, which makes them available
automatically in the completion of other commands referencing this
variable.

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 93522558a98..8dd54fd3ae0 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1763,10 +1763,12 @@ __git_diff_common_options="--stat --numstat --shortstat --summary
 			--irreversible-delete --line-prefix --no-stat
 			--output= --output-indicator-context=
 			--output-indicator-new= --output-indicator-old=
+			--ws-error-highlight=
+			--pickaxe-all --pickaxe-regex
 "
 
 # Options for diff/difftool
-__git_diff_difftool_options="--cached --staged --pickaxe-all --pickaxe-regex
+__git_diff_difftool_options="--cached --staged
 			--base --ours --theirs --no-index --merge-base
 			--ita-invisible-in-index --ita-visible-in-index
 			$__git_diff_common_options"
@@ -2115,7 +2117,6 @@ _git_log ()
 			--expand-tabs --expand-tabs= --no-expand-tabs
 			$merge
 			$__git_diff_common_options
-			--pickaxe-all --pickaxe-regex
 			"
 		return
 		;;
-- 
gitgitgadget


```

## Philippe Blain via GitGitGadget, 2023-06-12 12:52

Subject: [PATCH v2 23/25] completion: complete --diff-merges, its options and --no-diff-merges
Message-ID: <808e7db20cf92991ac4c61355bd4b22bcdeefd3f.1686574374.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/808e7db20cf92991ac4c61355bd4b22bcdeefd3f.1686574374.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.v2.git.1686574374.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

The flags --[no-]diff-merges only make sense for 'git log' and 'git
show', so add a new variable __git_log_show_options for options only
relevant to these two commands, and add them there. Also add
__git_diff_merges_opts and list the accepted values for --diff-merges,
and use it in _git_log and _git_show.

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 8dd54fd3ae0..7b7f3f838e0 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -2040,6 +2040,12 @@ __git_log_shortlog_options="
 	--author= --committer= --grep=
 	--all-match --invert-grep
 "
+# Options accepted by log and show
+__git_log_show_options="
+	--diff-merges --diff-merges= --no-diff-merges
+"
+
+__git_diff_merges_opts="off none on first-parent 1 separate m combined c dense-combined cc remerge r"
 
 __git_log_pretty_formats="oneline short medium full fuller reference email raw format: tformat: mboxrd"
 __git_log_date_formats="relative iso8601 iso8601-strict rfc2822 short local default human raw unix auto: format:"
@@ -2096,11 +2102,16 @@ _git_log ()
 		__gitcomp "sorted unsorted" "" "${cur##--no-walk=}"
 		return
 		;;
+	--diff-merges=*)
+                __gitcomp "$__git_diff_merges_opts" "" "${cur##--diff-merges=}"
+                return
+                ;;
 	--*)
 		__gitcomp "
 			$__git_log_common_options
 			$__git_log_shortlog_options
 			$__git_log_gitk_options
+			$__git_log_show_options
 			--root --topo-order --date-order --reverse
 			--follow --full-diff
 			--abbrev-commit --no-abbrev-commit --abbrev=
@@ -3015,10 +3026,15 @@ _git_show ()
 		__gitcomp "$__git_ws_error_highlight_opts" "" "${cur##--ws-error-highlight=}"
 		return
 		;;
+	--diff-merges=*)
+                __gitcomp "$__git_diff_merges_opts" "" "${cur##--diff-merges=}"
+                return
+                ;;
 	--*)
 		__gitcomp "--pretty= --format= --abbrev-commit --no-abbrev-commit
 			--oneline --show-signature
 			--expand-tabs --expand-tabs= --no-expand-tabs
+			$__git_log_show_options
 			$__git_diff_common_options
 			"
 		return
-- 
gitgitgadget


```

## Philippe Blain via GitGitGadget, 2023-06-12 12:52

Subject: [PATCH v2 24/25] completion: complete --remerge-diff
Message-ID: <d5fc5b04b00c863a7201b6762f5034a89adc4577.1686574374.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/d5fc5b04b00c863a7201b6762f5034a89adc4577.1686574374.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.v2.git.1686574374.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

--remerge-diff only makes sense for 'git log' and 'git show', so add it
to __git_log_show_options which is referenced in the completion for
these two commands.

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 7b7f3f838e0..38b6bac9154 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -2042,7 +2042,7 @@ __git_log_shortlog_options="
 "
 # Options accepted by log and show
 __git_log_show_options="
-	--diff-merges --diff-merges= --no-diff-merges
+	--diff-merges --diff-merges= --no-diff-merges --remerge-diff
 "
 
 __git_diff_merges_opts="off none on first-parent 1 separate m combined c dense-combined cc remerge r"
-- 
gitgitgadget


```

## Philippe Blain via GitGitGadget, 2023-06-12 12:52

Subject: [PATCH v2 25/25] diff.c: mention completion above add_diff_options
Message-ID: <da2cc42cbd4d6085079e1bc2152e4503072bef90.1686574374.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/da2cc42cbd4d6085079e1bc2152e4503072bef90.1686574374.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.v2.git.1686574374.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

Add a comment on top of add_diff_options, where common diff options are
listed, mentioning __git_diff_common_options in the completion script,
in the hope that contributors update it when they add new diff flags.

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 diff.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/diff.c b/diff.c
index 3c88c37908d..64c93c0f0e2 100644
--- a/diff.c
+++ b/diff.c
@@ -5491,6 +5491,10 @@ static int diff_opt_rotate_to(const struct option *opt, const char *arg, int uns
 	return 0;
 }
 
+/*
+ * Consider adding new flags to __git_diff_common_options
+ * in contrib/completion/git-completion.bash
+ */
 struct option *add_diff_options(const struct option *opts,
 				struct diff_options *options)
 {
-- 
gitgitgadget

```

## Junio C Hamano, 2023-06-12 21:42

Subject: Re: [PATCH v2 19/25] completion: complete --patch-with-raw
Message-ID: <xmqq4jnc8iie.fsf@gitster.g>
URL: https://gitlist.dev/e/xmqq4jnc8iie.fsf%40gitster.g
In-Reply-To: <807b8201d145a21c629797067cee21d1d1b9a0d4.1686574374.git.gitgitgadget@gmail.com>

```
"Philippe Blain via GitGitGadget" <gitgitgadget@gmail.com> writes:

> From: Philippe Blain <levraiphilippeblain@gmail.com>
>
> Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
> ---
>  contrib/completion/git-completion.bash | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)

Everything else in the series looked OK, but I am not sure if we
want to advertise this historical wart that has no practical
advantage over using "-p --raw".  The only reason why we kept it is
because we do not have to even think about how likely it will break
ancient scripts if we removed it.

Thanks.

> diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
> index a69421cd740..c0d2678d320 100644
> --- a/contrib/completion/git-completion.bash
> +++ b/contrib/completion/git-completion.bash
> @@ -1741,7 +1741,7 @@ __git_diff_common_options="--stat --numstat --shortstat --summary
>  			--color-moved-ws= --no-color-moved-ws
>  			--full-index --binary --abbrev --diff-filter=
>  			--find-copies --find-object --find-renames
> -			--no-relative --relative
> +			--no-relative --relative --patch-with-raw
>  			--find-copies-harder --ignore-cr-at-eol
>  			--text --ignore-space-at-eol --ignore-space-change
>  			--ignore-all-space --ignore-blank-lines --exit-code

```

## Philippe Blain, 2023-06-12 22:57

Subject: Re: [PATCH v2 19/25] completion: complete --patch-with-raw
Message-ID: <5cba334c-4d75-0dac-20c6-9e3def1f224a@gmail.com>
URL: https://gitlist.dev/e/5cba334c-4d75-0dac-20c6-9e3def1f224a%40gmail.com
In-Reply-To: <xmqq4jnc8iie.fsf@gitster.g>

```
Hi Junio,

Le 2023-06-12 à 17:42, Junio C Hamano a écrit :
> "Philippe Blain via GitGitGadget" <gitgitgadget@gmail.com> writes:
> 
>> From: Philippe Blain <levraiphilippeblain@gmail.com>
>>
>> Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
>> ---
>>  contrib/completion/git-completion.bash | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> Everything else in the series looked OK, but I am not sure if we
> want to advertise this historical wart that has no practical
> advantage over using "-p --raw".  The only reason why we kept it is
> because we do not have to even think about how likely it will break
> ancient scripts if we removed it.
> 
> Thanks.

Yes, I tend to agree. I can drop this one in the next version.


```

## Philippe Blain via GitGitGadget, 2023-06-26 16:24

Subject: [PATCH v3 13/24] completion: complete --ita-invisible-in-index and --ita-visible-in-index
Message-ID: <fd94e9ae7830e98397c0f79cd3e0a519dc1fcd5f.1687796689.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/fd94e9ae7830e98397c0f79cd3e0a519dc1fcd5f.1687796689.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.v3.git.1687796688.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

The options --ita-invisible-in-index and --ita-visible-in-index are
listed in diff-options.txt and so are included in the documentation of
commands which include this file (diff, diff-*, log, show, format-patch)
but they only make sense for diffs relating to the index. As such, add
them to '__git_diff_difftool_options' instead of
'__git_diff_common_options' since it makes more sense to add them there.

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 1 +
 1 file changed, 1 insertion(+)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index e74636ebe86..7246ced14ad 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1763,6 +1763,7 @@ __git_diff_common_options="--stat --numstat --shortstat --summary
 # Options for diff/difftool
 __git_diff_difftool_options="--cached --staged --pickaxe-all --pickaxe-regex
 			--base --ours --theirs --no-index --relative --merge-base
+			--ita-invisible-in-index --ita-visible-in-index
 			$__git_diff_common_options"
 
 _git_diff ()
-- 
gitgitgadget


```

## Philippe Blain via GitGitGadget, 2023-06-26 16:24

Subject: [PATCH v3 15/24] completion: complete --no-relative
Message-ID: <d3242e1f949815e6c2c036146da2f5faff92d94f.1687796689.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/d3242e1f949815e6c2c036146da2f5faff92d94f.1687796689.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.v3.git.1687796688.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

Add --no-relative to __git_diff_common_options in the completion script,
and move --relative from __git_diff_difftool_options to
__git_diff_common_options since it applies to more than just diff and
difftool.

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 13d6730f33d..f4e773cb997 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1741,6 +1741,7 @@ __git_diff_common_options="--stat --numstat --shortstat --summary
 			--color-moved-ws= --no-color-moved-ws
 			--full-index --binary --abbrev --diff-filter=
 			--find-copies --find-object --find-renames
+			--no-relative --relative
 			--find-copies-harder --ignore-cr-at-eol
 			--text --ignore-space-at-eol --ignore-space-change
 			--ignore-all-space --ignore-blank-lines --exit-code
@@ -1762,7 +1763,7 @@ __git_diff_common_options="--stat --numstat --shortstat --summary
 
 # Options for diff/difftool
 __git_diff_difftool_options="--cached --staged --pickaxe-all --pickaxe-regex
-			--base --ours --theirs --no-index --relative --merge-base
+			--base --ours --theirs --no-index --merge-base
 			--ita-invisible-in-index --ita-visible-in-index
 			$__git_diff_common_options"
 
-- 
gitgitgadget


```

## Philippe Blain via GitGitGadget, 2023-06-26 16:24

Subject: [PATCH v3 05/24] completion: complete --compact-summary
Message-ID: <63d70d645e25a2e7f9d3dfac7f6b01c3bd27fd7e.1687796689.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/63d70d645e25a2e7f9d3dfac7f6b01c3bd27fd7e.1687796689.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.v3.git.1687796688.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 58ce64de9e2..4c43d13eef4 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1755,7 +1755,7 @@ __git_diff_common_options="--stat --numstat --shortstat --summary
 			--indent-heuristic --no-indent-heuristic
 			--textconv --no-textconv --break-rewrites
 			--patch --no-patch --cc --combined-all-paths
-			--anchored=
+			--anchored= --compact-summary
 "
 
 # Options for diff/difftool
-- 
gitgitgadget


```

## Philippe Blain via GitGitGadget, 2023-06-26 16:24

Subject: [PATCH v3 09/24] completion: complete --find-renames
Message-ID: <053f9e8620aa369f04eff8f1235eb57d15fe8755.1687796689.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/053f9e8620aa369f04eff8f1235eb57d15fe8755.1687796689.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.v3.git.1687796688.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 392fdbedd9f..0fa86dcde6f 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1740,7 +1740,7 @@ __git_diff_common_options="--stat --numstat --shortstat --summary
 			--color-moved --color-moved= --no-color-moved
 			--color-moved-ws= --no-color-moved-ws
 			--full-index --binary --abbrev --diff-filter=
-			--find-copies --find-object
+			--find-copies --find-object --find-renames
 			--find-copies-harder --ignore-cr-at-eol
 			--text --ignore-space-at-eol --ignore-space-change
 			--ignore-all-space --ignore-blank-lines --exit-code
-- 
gitgitgadget


```

## Philippe Blain via GitGitGadget, 2023-06-26 16:24

Subject: [PATCH v3 08/24] completion: complete --find-object
Message-ID: <53b1c348f822ca32228cdb0f40b03c9ae9ec59c8.1687796689.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/53b1c348f822ca32228cdb0f40b03c9ae9ec59c8.1687796689.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.v3.git.1687796688.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index dd6e12ad8f6..392fdbedd9f 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1740,7 +1740,7 @@ __git_diff_common_options="--stat --numstat --shortstat --summary
 			--color-moved --color-moved= --no-color-moved
 			--color-moved-ws= --no-color-moved-ws
 			--full-index --binary --abbrev --diff-filter=
-			--find-copies
+			--find-copies --find-object
 			--find-copies-harder --ignore-cr-at-eol
 			--text --ignore-space-at-eol --ignore-space-change
 			--ignore-all-space --ignore-blank-lines --exit-code
-- 
gitgitgadget


```

## Philippe Blain via GitGitGadget, 2023-06-26 16:24

Subject: [PATCH v3 01/24] completion: add comments describing __git_diff_* globals
Message-ID: <4edabc7f15c3ad55c911919bec5a406bb48ad0ee.1687796689.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/4edabc7f15c3ad55c911919bec5a406bb48ad0ee.1687796689.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.v3.git.1687796688.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

Add descriptive comments for '__git_diff_common_options' and
'__git_diff_difftool_options', so that it is clearer when looking at
these variables to know in which command's completion they are used.

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index dc95c34cc85..90fe292459b 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1733,6 +1733,7 @@ __git_color_moved_opts="no default plain blocks zebra dimmed-zebra"
 __git_color_moved_ws_opts="no ignore-space-at-eol ignore-space-change
 			ignore-all-space allow-indentation-change"
 
+# Options for the diff machinery (diff, log, show, stash, range-diff, ...)
 __git_diff_common_options="--stat --numstat --shortstat --summary
 			--patch-with-stat --name-only --name-status --color
 			--no-color --color-words --no-renames --check
@@ -1757,6 +1758,7 @@ __git_diff_common_options="--stat --numstat --shortstat --summary
 			--anchored=
 "
 
+# Options for diff/difftool
 __git_diff_difftool_options="--cached --staged --pickaxe-all --pickaxe-regex
 			--base --ours --theirs --no-index --relative --merge-base
 			$__git_diff_common_options"
-- 
gitgitgadget


```

## Philippe Blain via GitGitGadget, 2023-06-26 16:24

Subject: [PATCH v3 14/24] completion: complete --line-prefix
Message-ID: <560ad1cd0179f8615dadd8b252b5c3f8cef6822e.1687796689.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/560ad1cd0179f8615dadd8b252b5c3f8cef6822e.1687796689.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.v3.git.1687796688.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 7246ced14ad..13d6730f33d 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1757,7 +1757,7 @@ __git_diff_common_options="--stat --numstat --shortstat --summary
 			--textconv --no-textconv --break-rewrites
 			--patch --no-patch --cc --combined-all-paths
 			--anchored= --compact-summary --ignore-matching-lines=
-			--irreversible-delete
+			--irreversible-delete --line-prefix
 "
 
 # Options for diff/difftool
-- 
gitgitgadget


```

## Philippe Blain via GitGitGadget, 2023-06-26 16:24

Subject: [PATCH v3 00/24] completion: add missing diff options
Message-ID: <pull.1543.v3.git.1687796688.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/pull.1543.v3.git.1687796688.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.v2.git.1686574374.gitgitgadget@gmail.com>

```
Changes since v2:

 * removed --patch-with-raw on Junio's suggestion, '-p --raw' does the exact
   same thing.

Changes since v1:

 * correted authorship in 21/25
 * fixed typos pointed out by Eric

v1: This series adds missing diff options to the Bash completion script.
Completion often serves as a discovery mechanism for options, so it is
beneficial to users if all options are offered by the completion script.

The list of missing options was generated by:

 1. Extracting all diff options from the documentation:
    
    git grep -h --no-column --only-match -e ^--[a-z][a-z-]*
    Documentation/diff-options.txt
    | sort -u > diff-options.txt

 2. Searching for each option in the completion script and visually checking
    which one was missing:
    
    while read p; do echo --- $p ---; echo; git grep --color -p -e $p
    upstream/master contrib/completion/git-completion.bash done <
    diff-options.txt

The only options I left out are --skip-to and --rotate-to, since I agree
with their documentation: they are probably not very useful outside of their
use in 'git difftool'.

Cheers,

Philippe.

Philippe Blain (24):
  completion: add comments describing __git_diff_* globals
  completion: complete --break-rewrites
  completion: complete --cc
  completion: complete --combined-all-paths
  completion: complete --compact-summary
  completion: complete --default-prefix
  completion: complete --find-copies
  completion: complete --find-object
  completion: complete --find-renames
  completion: complete --function-context
  completion: complete --ignore-matching-lines
  completion: complete --irreversible-delete
  completion: complete --ita-invisible-in-index and
    --ita-visible-in-index
  completion: complete --line-prefix
  completion: complete --no-relative
  completion: complete --no-stat
  completion: complete --output
  completion: complete --output-indicator-{context,new,old}
  completion: complete --unified
  completion: complete --ws-error-highlight
  completion: move --pickaxe-{all,regex} to __git_diff_common_options
  completion: complete --diff-merges, its options and --no-diff-merges
  completion: complete --remerge-diff
  diff.c: mention completion above add_diff_options

 contrib/completion/git-completion.bash | 57 ++++++++++++++++++++++----
 diff.c                                 |  4 ++
 2 files changed, 52 insertions(+), 9 deletions(-)


base-commit: fe86abd7511a9a6862d5706c6fa1d9b57a63ba09
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-1543%2Fphil-blain%2Fcompletion-common-diff-v3
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-1543/phil-blain/completion-common-diff-v3
Pull-Request: https://github.com/gitgitgadget/git/pull/1543

Range-diff vs v2:

  1:  4edabc7f15c =  1:  4edabc7f15c completion: add comments describing __git_diff_* globals
  2:  1f3c9e8d417 =  2:  1f3c9e8d417 completion: complete --break-rewrites
  3:  d38823dd116 =  3:  d38823dd116 completion: complete --cc
  4:  51024ee2f2c =  4:  51024ee2f2c completion: complete --combined-all-paths
  5:  63d70d645e2 =  5:  63d70d645e2 completion: complete --compact-summary
  6:  7296a3a8c9d =  6:  7296a3a8c9d completion: complete --default-prefix
  7:  1f9b213cee5 =  7:  1f9b213cee5 completion: complete --find-copies
  8:  53b1c348f82 =  8:  53b1c348f82 completion: complete --find-object
  9:  053f9e8620a =  9:  053f9e8620a completion: complete --find-renames
 10:  2503d990e5c = 10:  2503d990e5c completion: complete --function-context
 11:  8bd72945a2f = 11:  8bd72945a2f completion: complete --ignore-matching-lines
 12:  5d32e972a0c = 12:  5d32e972a0c completion: complete --irreversible-delete
 13:  fd94e9ae783 = 13:  fd94e9ae783 completion: complete --ita-invisible-in-index and --ita-visible-in-index
 14:  560ad1cd017 = 14:  560ad1cd017 completion: complete --line-prefix
 15:  d3242e1f949 = 15:  d3242e1f949 completion: complete --no-relative
 16:  0f16a466fd9 = 16:  0f16a466fd9 completion: complete --no-stat
 17:  761c75d4aec = 17:  761c75d4aec completion: complete --output
 18:  f8d430639bc = 18:  f8d430639bc completion: complete --output-indicator-{context,new,old}
 19:  807b8201d14 <  -:  ----------- completion: complete --patch-with-raw
 20:  19507b1a210 = 19:  cbf2e59cbea completion: complete --unified
 21:  c78650f215e = 20:  4750951f120 completion: complete --ws-error-highlight
 22:  040248a3868 = 21:  eda4d407ded completion: move --pickaxe-{all,regex} to __git_diff_common_options
 23:  808e7db20cf = 22:  fb23869dfbb completion: complete --diff-merges, its options and --no-diff-merges
 24:  d5fc5b04b00 = 23:  eb9a6a06914 completion: complete --remerge-diff
 25:  da2cc42cbd4 = 24:  47e81c2add6 diff.c: mention completion above add_diff_options

-- 
gitgitgadget

```

## Philippe Blain via GitGitGadget, 2023-06-26 16:24

Subject: [PATCH v3 10/24] completion: complete --function-context
Message-ID: <2503d990e5c7d1fb5bbf06493951204e7c00ea09.1687796689.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/2503d990e5c7d1fb5bbf06493951204e7c00ea09.1687796689.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.v3.git.1687796688.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 0fa86dcde6f..2610a55487b 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1746,7 +1746,7 @@ __git_diff_common_options="--stat --numstat --shortstat --summary
 			--ignore-all-space --ignore-blank-lines --exit-code
 			--quiet --ext-diff --no-ext-diff
 			--no-prefix --src-prefix= --dst-prefix=
-			--inter-hunk-context=
+			--inter-hunk-context= --function-context
 			--patience --histogram --minimal
 			--raw --word-diff --word-diff-regex=
 			--dirstat --dirstat= --dirstat-by-file
-- 
gitgitgadget


```

## Philippe Blain via GitGitGadget, 2023-06-26 16:24

Subject: [PATCH v3 07/24] completion: complete --find-copies
Message-ID: <1f9b213cee5a4c6325c7fa9528180e46aab7805a.1687796689.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/1f9b213cee5a4c6325c7fa9528180e46aab7805a.1687796689.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.v3.git.1687796688.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 1 +
 1 file changed, 1 insertion(+)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 6af04932a0a..dd6e12ad8f6 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1740,6 +1740,7 @@ __git_diff_common_options="--stat --numstat --shortstat --summary
 			--color-moved --color-moved= --no-color-moved
 			--color-moved-ws= --no-color-moved-ws
 			--full-index --binary --abbrev --diff-filter=
+			--find-copies
 			--find-copies-harder --ignore-cr-at-eol
 			--text --ignore-space-at-eol --ignore-space-change
 			--ignore-all-space --ignore-blank-lines --exit-code
-- 
gitgitgadget


```

## Philippe Blain via GitGitGadget, 2023-06-26 16:24

Subject: [PATCH v3 02/24] completion: complete --break-rewrites
Message-ID: <1f3c9e8d417d2c9f16583da7609e8f322059f1f1.1687796689.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/1f3c9e8d417d2c9f16583da7609e8f322059f1f1.1687796689.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.v3.git.1687796688.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 90fe292459b..f07b00b9c68 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1753,7 +1753,7 @@ __git_diff_common_options="--stat --numstat --shortstat --summary
 			--diff-algorithm=
 			--submodule --submodule= --ignore-submodules
 			--indent-heuristic --no-indent-heuristic
-			--textconv --no-textconv
+			--textconv --no-textconv --break-rewrites
 			--patch --no-patch
 			--anchored=
 "
-- 
gitgitgadget


```

## Philippe Blain via GitGitGadget, 2023-06-26 16:24

Subject: [PATCH v3 19/24] completion: complete --unified
Message-ID: <cbf2e59cbea00e631637958efd964a004af0efba.1687796689.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/cbf2e59cbea00e631637958efd964a004af0efba.1687796689.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.v3.git.1687796688.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index a69421cd740..7babd95d844 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1745,7 +1745,7 @@ __git_diff_common_options="--stat --numstat --shortstat --summary
 			--find-copies-harder --ignore-cr-at-eol
 			--text --ignore-space-at-eol --ignore-space-change
 			--ignore-all-space --ignore-blank-lines --exit-code
-			--quiet --ext-diff --no-ext-diff
+			--quiet --ext-diff --no-ext-diff --unified=
 			--no-prefix --src-prefix= --dst-prefix=
 			--inter-hunk-context= --function-context
 			--patience --histogram --minimal
-- 
gitgitgadget


```

## Philippe Blain via GitGitGadget, 2023-06-26 16:24

Subject: [PATCH v3 16/24] completion: complete --no-stat
Message-ID: <0f16a466fd9bdafe0365ee9cf1bce81fc11767d1.1687796689.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/0f16a466fd9bdafe0365ee9cf1bce81fc11767d1.1687796689.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.v3.git.1687796688.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index f4e773cb997..ec2e4c9e711 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1758,7 +1758,7 @@ __git_diff_common_options="--stat --numstat --shortstat --summary
 			--textconv --no-textconv --break-rewrites
 			--patch --no-patch --cc --combined-all-paths
 			--anchored= --compact-summary --ignore-matching-lines=
-			--irreversible-delete --line-prefix
+			--irreversible-delete --line-prefix --no-stat
 "
 
 # Options for diff/difftool
-- 
gitgitgadget


```

## Philippe Blain via GitGitGadget, 2023-06-26 16:24

Subject: [PATCH v3 12/24] completion: complete --irreversible-delete
Message-ID: <5d32e972a0c6e099f1d30d4a2a8cbff6e204b09e.1687796689.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/5d32e972a0c6e099f1d30d4a2a8cbff6e204b09e.1687796689.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.v3.git.1687796688.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 1 +
 1 file changed, 1 insertion(+)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index b4d0643b049..e74636ebe86 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1757,6 +1757,7 @@ __git_diff_common_options="--stat --numstat --shortstat --summary
 			--textconv --no-textconv --break-rewrites
 			--patch --no-patch --cc --combined-all-paths
 			--anchored= --compact-summary --ignore-matching-lines=
+			--irreversible-delete
 "
 
 # Options for diff/difftool
-- 
gitgitgadget


```

## Philippe Blain via GitGitGadget, 2023-06-26 16:24

Subject: [PATCH v3 06/24] completion: complete --default-prefix
Message-ID: <7296a3a8c9da5287cca85c61af342dfc647fb2a8.1687796689.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/7296a3a8c9da5287cca85c61af342dfc647fb2a8.1687796689.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.v3.git.1687796688.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 4c43d13eef4..6af04932a0a 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1750,7 +1750,7 @@ __git_diff_common_options="--stat --numstat --shortstat --summary
 			--raw --word-diff --word-diff-regex=
 			--dirstat --dirstat= --dirstat-by-file
 			--dirstat-by-file= --cumulative
-			--diff-algorithm=
+			--diff-algorithm= --default-prefix
 			--submodule --submodule= --ignore-submodules
 			--indent-heuristic --no-indent-heuristic
 			--textconv --no-textconv --break-rewrites
-- 
gitgitgadget


```

## Philippe Blain via GitGitGadget, 2023-06-26 16:24

Subject: [PATCH v3 18/24] completion: complete --output-indicator-{context,new,old}
Message-ID: <f8d430639bcec85d822747aec161f1069255c10b.1687796689.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/f8d430639bcec85d822747aec161f1069255c10b.1687796689.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.v3.git.1687796688.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index a34432796bf..a69421cd740 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1759,7 +1759,8 @@ __git_diff_common_options="--stat --numstat --shortstat --summary
 			--patch --no-patch --cc --combined-all-paths
 			--anchored= --compact-summary --ignore-matching-lines=
 			--irreversible-delete --line-prefix --no-stat
-			--output=
+			--output= --output-indicator-context=
+			--output-indicator-new= --output-indicator-old=
 "
 
 # Options for diff/difftool
-- 
gitgitgadget


```

## Philippe Blain via GitGitGadget, 2023-06-26 16:24

Subject: [PATCH v3 03/24] completion: complete --cc
Message-ID: <d38823dd116e4579bbbeb96ff7b1eae8116681bb.1687796689.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/d38823dd116e4579bbbeb96ff7b1eae8116681bb.1687796689.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.v3.git.1687796688.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index f07b00b9c68..b61c54e37f7 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1754,7 +1754,7 @@ __git_diff_common_options="--stat --numstat --shortstat --summary
 			--submodule --submodule= --ignore-submodules
 			--indent-heuristic --no-indent-heuristic
 			--textconv --no-textconv --break-rewrites
-			--patch --no-patch
+			--patch --no-patch --cc
 			--anchored=
 "
 
-- 
gitgitgadget


```

## Philippe Blain via GitGitGadget, 2023-06-26 16:24

Subject: [PATCH v3 04/24] completion: complete --combined-all-paths
Message-ID: <51024ee2f2c4862d223e10ae4f193b8e0aeb1c60.1687796689.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/51024ee2f2c4862d223e10ae4f193b8e0aeb1c60.1687796689.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.v3.git.1687796688.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index b61c54e37f7..58ce64de9e2 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1754,7 +1754,7 @@ __git_diff_common_options="--stat --numstat --shortstat --summary
 			--submodule --submodule= --ignore-submodules
 			--indent-heuristic --no-indent-heuristic
 			--textconv --no-textconv --break-rewrites
-			--patch --no-patch --cc
+			--patch --no-patch --cc --combined-all-paths
 			--anchored=
 "
 
-- 
gitgitgadget


```

## Philippe Blain via GitGitGadget, 2023-06-26 16:24

Subject: [PATCH v3 20/24] completion: complete --ws-error-highlight
Message-ID: <4750951f1209b6c8fb1e84e00dcf4072b051a418.1687796689.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/4750951f1209b6c8fb1e84e00dcf4072b051a418.1687796689.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.v3.git.1687796688.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

Add --ws-error-highlight= to the list in __git_diff_common_options, and
add the accepted values in a new list __git_ws_error_highlight_opts.

Use __git_ws_error_highlight_opts in _git_diff, _git_log and _git_show
to offer the accepted values.

As noted in fd0bc17557 (completion: add diff --color-moved[-ws],
2020-02-21), there is no easy way to offer completion for several
comma-separated values, so this is limited to completing a single
value.

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 7babd95d844..9de33ed05da 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1733,6 +1733,8 @@ __git_color_moved_opts="no default plain blocks zebra dimmed-zebra"
 __git_color_moved_ws_opts="no ignore-space-at-eol ignore-space-change
 			ignore-all-space allow-indentation-change"
 
+__git_ws_error_highlight_opts="context old new all default"
+
 # Options for the diff machinery (diff, log, show, stash, range-diff, ...)
 __git_diff_common_options="--stat --numstat --shortstat --summary
 			--patch-with-stat --name-only --name-status --color
@@ -1790,6 +1792,10 @@ _git_diff ()
 		__gitcomp "$__git_color_moved_ws_opts" "" "${cur##--color-moved-ws=}"
 		return
 		;;
+	--ws-error-highlight=*)
+		__gitcomp "$__git_ws_error_highlight_opts" "" "${cur##--ws-error-highlight=}"
+		return
+		;;
 	--*)
 		__gitcomp "$__git_diff_difftool_options"
 		return
@@ -2080,6 +2086,10 @@ _git_log ()
 		__gitcomp "$__git_diff_submodule_formats" "" "${cur##--submodule=}"
 		return
 		;;
+	--ws-error-highlight=*)
+		__gitcomp "$__git_ws_error_highlight_opts" "" "${cur##--ws-error-highlight=}"
+		return
+		;;
 	--no-walk=*)
 		__gitcomp "sorted unsorted" "" "${cur##--no-walk=}"
 		return
@@ -3000,6 +3010,10 @@ _git_show ()
 		__gitcomp "$__git_color_moved_ws_opts" "" "${cur##--color-moved-ws=}"
 		return
 		;;
+	--ws-error-highlight=*)
+		__gitcomp "$__git_ws_error_highlight_opts" "" "${cur##--ws-error-highlight=}"
+		return
+		;;
 	--*)
 		__gitcomp "--pretty= --format= --abbrev-commit --no-abbrev-commit
 			--oneline --show-signature
-- 
gitgitgadget


```

## Philippe Blain via GitGitGadget, 2023-06-26 16:24

Subject: [PATCH v3 22/24] completion: complete --diff-merges, its options and --no-diff-merges
Message-ID: <fb23869dfbb6d7846322bd69a78ab4118b5af3a7.1687796689.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/fb23869dfbb6d7846322bd69a78ab4118b5af3a7.1687796689.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.v3.git.1687796688.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

The flags --[no-]diff-merges only make sense for 'git log' and 'git
show', so add a new variable __git_log_show_options for options only
relevant to these two commands, and add them there. Also add
__git_diff_merges_opts and list the accepted values for --diff-merges,
and use it in _git_log and _git_show.

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 5b8e7b810c8..8688f7c433c 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -2040,6 +2040,12 @@ __git_log_shortlog_options="
 	--author= --committer= --grep=
 	--all-match --invert-grep
 "
+# Options accepted by log and show
+__git_log_show_options="
+	--diff-merges --diff-merges= --no-diff-merges
+"
+
+__git_diff_merges_opts="off none on first-parent 1 separate m combined c dense-combined cc remerge r"
 
 __git_log_pretty_formats="oneline short medium full fuller reference email raw format: tformat: mboxrd"
 __git_log_date_formats="relative iso8601 iso8601-strict rfc2822 short local default human raw unix auto: format:"
@@ -2096,11 +2102,16 @@ _git_log ()
 		__gitcomp "sorted unsorted" "" "${cur##--no-walk=}"
 		return
 		;;
+	--diff-merges=*)
+                __gitcomp "$__git_diff_merges_opts" "" "${cur##--diff-merges=}"
+                return
+                ;;
 	--*)
 		__gitcomp "
 			$__git_log_common_options
 			$__git_log_shortlog_options
 			$__git_log_gitk_options
+			$__git_log_show_options
 			--root --topo-order --date-order --reverse
 			--follow --full-diff
 			--abbrev-commit --no-abbrev-commit --abbrev=
@@ -3015,10 +3026,15 @@ _git_show ()
 		__gitcomp "$__git_ws_error_highlight_opts" "" "${cur##--ws-error-highlight=}"
 		return
 		;;
+	--diff-merges=*)
+                __gitcomp "$__git_diff_merges_opts" "" "${cur##--diff-merges=}"
+                return
+                ;;
 	--*)
 		__gitcomp "--pretty= --format= --abbrev-commit --no-abbrev-commit
 			--oneline --show-signature
 			--expand-tabs --expand-tabs= --no-expand-tabs
+			$__git_log_show_options
 			$__git_diff_common_options
 			"
 		return
-- 
gitgitgadget


```

## Philippe Blain via GitGitGadget, 2023-06-26 16:24

Subject: [PATCH v3 23/24] completion: complete --remerge-diff
Message-ID: <eb9a6a069147b5664a636095f398e3aac2e90dbf.1687796689.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/eb9a6a069147b5664a636095f398e3aac2e90dbf.1687796689.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.v3.git.1687796688.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

--remerge-diff only makes sense for 'git log' and 'git show', so add it
to __git_log_show_options which is referenced in the completion for
these two commands.

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 8688f7c433c..11f2edf47be 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -2042,7 +2042,7 @@ __git_log_shortlog_options="
 "
 # Options accepted by log and show
 __git_log_show_options="
-	--diff-merges --diff-merges= --no-diff-merges
+	--diff-merges --diff-merges= --no-diff-merges --remerge-diff
 "
 
 __git_diff_merges_opts="off none on first-parent 1 separate m combined c dense-combined cc remerge r"
-- 
gitgitgadget


```

## Philippe Blain via GitGitGadget, 2023-06-26 16:24

Subject: [PATCH v3 24/24] diff.c: mention completion above add_diff_options
Message-ID: <47e81c2add6bad8ca5adf40fb13935bb1e5fd533.1687796689.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/47e81c2add6bad8ca5adf40fb13935bb1e5fd533.1687796689.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.v3.git.1687796688.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

Add a comment on top of add_diff_options, where common diff options are
listed, mentioning __git_diff_common_options in the completion script,
in the hope that contributors update it when they add new diff flags.

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 diff.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/diff.c b/diff.c
index 3c88c37908d..64c93c0f0e2 100644
--- a/diff.c
+++ b/diff.c
@@ -5491,6 +5491,10 @@ static int diff_opt_rotate_to(const struct option *opt, const char *arg, int uns
 	return 0;
 }
 
+/*
+ * Consider adding new flags to __git_diff_common_options
+ * in contrib/completion/git-completion.bash
+ */
 struct option *add_diff_options(const struct option *opts,
 				struct diff_options *options)
 {
-- 
gitgitgadget

```

## Philippe Blain via GitGitGadget, 2023-06-26 16:24

Subject: [PATCH v3 21/24] completion: move --pickaxe-{all,regex} to __git_diff_common_options
Message-ID: <eda4d407ded2f2189d9a7ea26fd49775afff5df0.1687796689.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/eda4d407ded2f2189d9a7ea26fd49775afff5df0.1687796689.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.v3.git.1687796688.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

The options --pickaxe-all and --pickaxe-regex are listed in
__git_diff_difftool_options and repeated in _git_log. Move them to
__git_diff_common_options instead, which makes them available
automatically in the completion of other commands referencing this
variable.

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 9de33ed05da..5b8e7b810c8 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1763,10 +1763,12 @@ __git_diff_common_options="--stat --numstat --shortstat --summary
 			--irreversible-delete --line-prefix --no-stat
 			--output= --output-indicator-context=
 			--output-indicator-new= --output-indicator-old=
+			--ws-error-highlight=
+			--pickaxe-all --pickaxe-regex
 "
 
 # Options for diff/difftool
-__git_diff_difftool_options="--cached --staged --pickaxe-all --pickaxe-regex
+__git_diff_difftool_options="--cached --staged
 			--base --ours --theirs --no-index --merge-base
 			--ita-invisible-in-index --ita-visible-in-index
 			$__git_diff_common_options"
@@ -2115,7 +2117,6 @@ _git_log ()
 			--expand-tabs --expand-tabs= --no-expand-tabs
 			$merge
 			$__git_diff_common_options
-			--pickaxe-all --pickaxe-regex
 			"
 		return
 		;;
-- 
gitgitgadget


```

## Philippe Blain via GitGitGadget, 2023-06-26 16:24

Subject: [PATCH v3 11/24] completion: complete --ignore-matching-lines
Message-ID: <8bd72945a2ff26c96cecc83abc07299ab51d262d.1687796689.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/8bd72945a2ff26c96cecc83abc07299ab51d262d.1687796689.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.v3.git.1687796688.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 2610a55487b..b4d0643b049 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1756,7 +1756,7 @@ __git_diff_common_options="--stat --numstat --shortstat --summary
 			--indent-heuristic --no-indent-heuristic
 			--textconv --no-textconv --break-rewrites
 			--patch --no-patch --cc --combined-all-paths
-			--anchored= --compact-summary
+			--anchored= --compact-summary --ignore-matching-lines=
 "
 
 # Options for diff/difftool
-- 
gitgitgadget


```

## Philippe Blain via GitGitGadget, 2023-06-26 16:24

Subject: [PATCH v3 17/24] completion: complete --output
Message-ID: <761c75d4aec988609a105db0f039ad9f15d2337e.1687796689.git.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/761c75d4aec988609a105db0f039ad9f15d2337e.1687796689.git.gitgitgadget%40gmail.com
In-Reply-To: <pull.1543.v3.git.1687796688.gitgitgadget@gmail.com>

```
From: Philippe Blain <levraiphilippeblain@gmail.com>

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 contrib/completion/git-completion.bash | 1 +
 1 file changed, 1 insertion(+)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index ec2e4c9e711..a34432796bf 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1759,6 +1759,7 @@ __git_diff_common_options="--stat --numstat --shortstat --summary
 			--patch --no-patch --cc --combined-all-paths
 			--anchored= --compact-summary --ignore-matching-lines=
 			--irreversible-delete --line-prefix --no-stat
+			--output=
 "
 
 # Options for diff/difftool
-- 
gitgitgadget


```
