threads / discuss / 54455

Issue with staging, unstaging, discarding hunks with no context

Subject: Issue with staging, unstaging, discarding hunks with no context

## tl;dr

2 messages between Oct 18, 2020 and Oct 18, 2020.

replies: 1people: 2as markdown or json

Daniel Dinnyes· Oct 18, 2020, 05:48 UTC · lore

The problem I have is described in more detail in the issue here with magit: https://github.com/magit/magit/issues/4222

The conclusion there was that this is an upstream problem due to some recent changes in git.

As it has been mentioned in the issue itself, it is understood that git had problems with handling hunks without context, so I assume this upstream change was to eliminate such issues.

Yet my experience was that hunks without context worked fine before 80% of the time, except if they were right next to each other, they might get mixed/messed up. Even in that case, I found that if I staged/unstaged hunks in top-down order in magit it didn't cause problems.

Without handling no-context hunks, I see I will have to stash/redo entire change-sets, to be able to commit logically separate hunks separately. This would be a major PITA.

Is there a plan to reintroduce handling of hunks with 0 line context in the future, or is this something which is technically not going to be possible ever?

Cheers, Dan

Phillip Wood· Oct 18, 2020, 09:12 UTC · re: Daniel Dinnyes · lore

Re: Issue with staging, unstaging, discarding hunks with no context

Hi Daniel
On 18/10/2020 06:48, Daniel Dinnyes wrote:
Show 5 quoted lines
> The problem I have is described in more detail in the issue here with magit:
> https://github.com/magit/magit/issues/4222
> 
> The conclusion there was that this is an upstream problem due to some
> recent changes in git.
That's not my reading of that issue. Specifically this comment by kyleam
     You're blaming the wrong git :) I introduced this change with
     6b3c90d (magit-apply-patch: Abort when there is no context,
     2019-08-02). It was prompted by gh-3924, which also brought
     about d508f02 (apply: Adjust hunk line positions for partial
     application, 2019-07-28).
Seems to point to this being a change in magit not git.

`git apply --unidiff-zero` will apply zero context patches but as a safety measure they will be rejected without `--unidiff-zero`

Best Wishes
Phillip
Show 21 quoted lines
> As it has been mentioned in the issue itself, it is understood that
> git had problems with handling hunks without context, so I assume this
> upstream change was to eliminate such issues.
> 
> Yet my experience was that hunks without context worked fine before
> 80% of the time, except if they were right next to each other, they
> might get mixed/messed up. Even in that case, I found that if I
> staged/unstaged hunks in top-down order in magit it didn't cause
> problems.
> 
> Without handling no-context hunks, I see I will have to stash/redo
> entire change-sets, to be able to commit logically separate hunks
> separately. This would be a major PITA.
> 
> Is there a plan to reintroduce handling of hunks with 0 line context
> in the future, or is this something which is technically not going to
> be possible ever?
> 
> Cheers,
> Dan
> 

← back to recent threads