Subject: Re: Whitepace parameter for git restore

From: Junio C Hamano <[email-masked]>
Date: Thu, 15 Dec 2022 08:39:41 +0900

Niklas Volcz <[email-masked]> writes:

> Is there a way to pass apply.whitespace when using "git restore" like
> how it is done for git apply? I believe this might be a bug/missing
> feature.
> I have apply.whitespace=fix in my user git config. This usually works
> fine but I was working on a patch for a project today which is using
> tabs and spaces which messed up the commit. In order to avoid
> cluttering the diff with whitespace changes I tried to remove the
> whitespace changes with "git restore -p
> src/the-file-with-tabs-and-spaces.sh" but it seems that this causes
> git to fix the whitespaces again due to the configuration. I worked
> around this by setting a repo local config with
> "apply.whitespace=warn" but I wonder if there shouldn't be an
> --whitespace flag for git restore like it is for git apply. Is this a
> bug?

It is arguable what should qualify as a "bug", but "restore" or
"checkout" are primarily "grab the recorded blob out of the object
store and materialize its contents as a whole in a file in the
working tree", and there is no place for features that are about
patch application like "apply to fix whitespace" to come in.  So a
command line option --whitespace=warn would not be a very good fit.

Having said that, I wonder if you can cheat by

    $ git -c apply.whitespace=ignore restore -p ...