Conflicted File Missing Diff and Content in Conflict State
- 主要言語
- Rust
- スター
- 22.5k
- フォーク
- 774
- PR マージ指標
- 30日以内にマージされた PR はありません
説明
**Describe the bug**
When a merge conflict occurs, GitUI fails to display the conflict markers or the diff for the conflicted file. Instead of showing the diff (e.g., between `HEAD` and the incoming branch), the diff view appears blank or displays an incorrect file size, making it difficult to resolve conflicts within the UI.
**To Reproduce**
Steps to reproduce the behavior:
1. Initialize a Git repository.
2. Create `file.txt` with "Original Line" on `master`.
3. Create branch `feature` from `master`.
4. On `master`, change `file.txt` to "Master Line" and commit.
5. On `feature`, change `file.txt` to "Feature Line" and commit.
6. On `master`, run `git merge feature` to trigger a conflict.
7. Open `gitui`.
8. Navigate to the "Status" tab and select the conflicted `file.txt`.
9. Observe that the diff view is blank or incorrect.
**Expected behavior**
GitUI should correctly display the conflict markers (e.g., `<<<<<<<`, `=======`, `>>>>>>>`) and provide a diff view that allows the user to see the differences between branches and ideally use the "Stage" or "Resolve" functions.
**Screenshots**
**Context**
- OS/Distro + Version: `Linux localhost 6.12.38+kali-amd64 #1 SMP PREEMPT_DYNAMIC Kali 6.12.38-1kali1 (2025-08-12) x86_64 GNU/Linux`
- GitUI Version: `gitui nightly 2025-12-15`
- Rust version: `rustc 1.93.1 (01f6ddf75 2026-02-11)`
**Additional context**
Current Git state and file content for reference:
### Git Status
```text
On branch master
You have unmerged paths.
(fix conflicts and run "git commit")
(use "git merge --abort" to abort the merge)
Unmerged paths:
(use "git add ..." to mark resolution)
both modified: file.txt
```
### File Content (`file.txt`)
```text
<<<<<<< HEAD
Master Line
=======
Feature Line
>>>>>>> feature
```
### Git Diff
```diff
diff --cc file.txt
index 8ba2485,60a7231..0000000
--- a/file.txt
+++ b/file.txt
@@@ -1,1 -1,1 +1,5 @@@
++<<<<<<< HEAD
+Master Line
++=======
+ Feature Line
++>>>>>>> feature
```
コントリビューションガイド
調査の方向性
file.txt で merge conflict を再現し、次に Status タブから競合しているファイルを調べ、GitUI が diff とファイルサイズをどのように取得しているかを追跡します。diff ビューに競合マーカーとブランチ間の差分が正しく表示され、既存の Stage または Resolve アクションが引き続き使用できれば完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- git, rust
- 領域
- cli, devtools
- issue の種類
- バグ
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 活発さ
- 停滞
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 45/100