gitui-org/gitui

Wrong patch when staged line by line, compared to other alternatives

Open

#1 416 ouverte le 31 oct. 2022

Voir sur GitHub
 (8 commentaires) (1 réaction) (0 assignés)Rust (721 forks)batch import
bughelp wantednostale

Métriques du dépôt

Stars
 (21 937 stars)
Métriques de merge PR
 (Merge moyen 41j 9h) (6 PRs mergées en 30 j)

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:
struct Earth;

impl Earth {
	fn new() -> Self {
		Self
	}
}

struct Mars;

impl Mars {
	fn new() -> Self {
		Self
	}
}
  1. Update the file with this:
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
	}
}
  1. Use gitui to just stage into_mars and its body
  2. 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.

Guide contributeur