threads / discuss / 58948

Whitepace parameter for git restore

Subject: Whitepace parameter for git restore

## tl;dr

2 messages between Dec 14, 2022 and Dec 14, 2022.

replies: 1people: 2as markdown or json

Niklas Volcz· Dec 14, 2022, 13:36 UTC · lore

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?

Best regards, Niklas

Junio C Hamano· Dec 14, 2022, 23:39 UTC · re: Niklas Volcz · lore

Re: Whitepace parameter for git restore

Niklas Volcz <niklas.volcz@gmail.com> writes:
Show 14 quoted lines
> 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 ...

← back to recent threads