Wrong patch when staged line by line, compared to other alternatives
- Dominant language
- Rust
- Stars
- 22.5k
- Forks
- 773
- PR merge metrics
- No merged PRs in 30d
Description
**Describe the bug**
Wrong patch when line by line staging compared to using hunks or lazygit or ``git add -e``.
**To Reproduce**
Steps to reproduce the behavior:
1. Create a empty repo
2. Stage & commit this on a file:
```rs
struct Earth;
impl Earth {
fn new() -> Self {
Self
}
}
struct Mars;
impl Mars {
fn new() -> Self {
Self
}
}
```
3. Update the file with this:
```rs
struct Earth;
impl Earth {
fn new() -> Self {
Self
}
fn into_mars(self) -> Mars {
Mars
}
}
struct Mars;
impl Mars {
fn new() -> Self {
Self
}
fn into_earth(self) -> Earth {
Earth
}
}
```
4. Use gitui to just stage ``into_mars`` and its body
5. Check the resulted patch with ``git diff --staged``
**Expected behavior**
I expect it to match other commands and tools.
**Screenshots**
(source code is different from the example above as I recorded these before creating the issue)
Using gitui: https://asciinema.org/a/dL8rEfpOHRQskpa7wmfVTJDQF
Using lazygit: https://asciinema.org/a/z0iSujDQzZO24wr7qXjKNwTf2
**Context (please complete the following information):**
- OS/Distro + Version: Windows 10 22H2
- GitUI Version: 0.21.0
- Rust version: 1.66.0-nightly
**Additional context**
I don't know if this is actually an issue because I don't know much about git patches; but it looks like it corrupts(?) the patch.
Contributor guide
Assessment
This issue has not been assessed yet.