# git add -p doesn't respect diff.context

2 messages from 2016-01-20 to 2016-02-04. Participants: Mike Hommey, Jeff King.
Thread: https://gitlist.dev/t/41221

## Mike Hommey, 2016-01-20 06:35

Subject: git add -p doesn't respect diff.context
Message-ID: <20160120063523.GA26490@glandium.org>
URL: https://gitlist.dev/e/20160120063523.GA26490%40glandium.org

```
Hi,

When doing git add -p, the default of 3 context lines is used, ignoring
the diff.context.

git add -p is using git-diff-files, and diff.context is being read in
git_diff_ui_config, so the comment above that function applies:
/*
 * These are to give UI layer defaults.
 * The core-level commands such as git-diff-files should
 * never be affected by the setting of diff.renames
 * the user happens to have in the configuration file.
 */

I guess the question is whether it's diff-files or add -p that should
honor diff.context. Or should it have its own separate config?

Mike

```

## Jeff King, 2016-02-04 08:02

Subject: Re: git add -p doesn't respect diff.context
Message-ID: <20160204080239.GC21161@sigill.intra.peff.net>
URL: https://gitlist.dev/e/20160204080239.GC21161%40sigill.intra.peff.net
In-Reply-To: <20160120063523.GA26490@glandium.org>

```
On Wed, Jan 20, 2016 at 03:35:23PM +0900, Mike Hommey wrote:

> When doing git add -p, the default of 3 context lines is used, ignoring
> the diff.context.
> 
> git add -p is using git-diff-files, and diff.context is being read in
> git_diff_ui_config, so the comment above that function applies:
> /*
>  * These are to give UI layer defaults.
>  * The core-level commands such as git-diff-files should
>  * never be affected by the setting of diff.renames
>  * the user happens to have in the configuration file.
>  */
> 
> I guess the question is whether it's diff-files or add -p that should
> honor diff.context. Or should it have its own separate config?

I think it must be "add -p", as otherwise we risk breaking scripts which
try to build on diff-tree but can't handle extra context (though I have
to admit that unlike something like diff.color, it would be a pretty
poor consumer of a diff that couldn't handle varying context).

We already do something similar with diff.algorithm. I think you could
probably just cargo-cult the handling of $diff_algorithm in
git-add--interactive.perl.

It might also make a nice GSoC microproject.

-Peff

```
