Re: git restore --staged -p on merge conflict causes crash

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Jan 7, 2025, at 15:41, Keith Mendoza wrote:
> What did you do before the bug happened? (Steps to reproduce your issue)
> 1. Start with a main branch
> 1. Add a new file (test.yaml)
> 1. git checkout --no-track -b branch-1
> 1. Commit a change to test.yaml
> 1. git checkout main
> 1. Commit a change to the same lines in test.yaml that was updated in branch-1
> 1. git checkout branch-1
> 1. git merge main
> 1. git restore --staged -p test.yaml
>
> What did you expect to happen? (Expected behavior)
> Be able to select which updates to restore
>
> What happened instead? (Actual behavior)
> The following is displayed on the console
> ```
> BUG: add-patch.c:497: diff starts with unexpected line:
> * Unmerged path test.yaml
>
> Aborted (core dumped)
> ```

It looks[1] like this was fixed in 28d1122f9ca (add-patch: handle "*
Unmerged path" lines, 2023-03-09).[2] That fix was included in v2.41.0
and later.  So not on your maintenance release (v2.39.5).

The bug was introduced in 2.37.0:

Jeff King wrote:
> Thanks, a fix is below. While the escape-hatch of the perl version is
> going away in v2.40, people have been exposed to the bug since we
> flipped the default in v2.37.0.

At least I wasn’t able to reproduce on 2.48.0.rc2 with the below.

```
git init &&
touch test.yaml &&
git add test.yaml &&
git commit -minit &&
git checkout --no-track -b branch-1 &&
echo something >test.yaml &&
git add test.yaml &&
git commit -mchange &&
git checkout main &&
echo 'something else (conflict)' >test.yaml &&
git add test.yaml &&
git commit -m'change here too' &&
git checkout branch-1 &&
# Merge conflict
git merge main
git restore --staged -p test.yaml
```

† 1: Based on:

      BUG: add-patch.c:498: diff starts with unexpected line:

🔗 2: https://lore.kernel.org/git/ZAmfqC9WMl3XeyEr@xxxxxxxxxxxxxxxxxxxxxxx/





[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux