Bug #37383 — Gitea: PRs are showing already merged commits

github.com/go-gitea/gitea/issues/37383  ·  Gitea v1.26.0  ·  Reproduziert: 2026-04-24

Bug-Beschreibung

Im PR develop → staging zeigt Gitea v1.26.0 Commits als "neu" an, die bereits in der Ziel-Branch (staging) vorhanden sind.

Git-Flow der den Bug auslöst:
1. feature-Branch: Commit X hinzufügen
2. PR feature → staging mergen → Commit X ist in staging ✓
3. PR feature → develop mergen → Commit X ist in develop ✓
4. PR develop → staging erstellen → Gitea zeigt Commit X fälschlicherweise als "neu" ✗

✓ Commit X (9beddb6) added to feature branch
✓ PR #1: feature -> staging merged (commit X now in staging)
✓ PR #2: feature -> develop merged (commit X now in develop)
✗ PR #3: develop -> staging created (BUG: commit X shows as new)
Erwartete Commits
0
Tatsächliche Commits
1
UI Badge
1
Abweichung
+1
❌ BUG CONFIRMED: develop->staging PR shows 1 commit(s) that are already in staging

Schritt-für-Schritt Ablauf

1 Admin eingeloggt in Gitea v1.26.0

Erfolgreich als "kyronadmin" in Gitea v1.26.0 eingeloggt. Dashboard geladen.

Step 1
2 Repo-Branches nach Setup

Das Test-Repo "kyron-37383-repro" wurde via API erstellt. Branches: main, staging, develop, feature. Commit X (9beddb6) wurde auf den feature-Branch gepusht.

Step 2
3 Bug-PR: develop → staging — Commits-Badge zeigt "1"

PR #3 (develop → staging) wurde erstellt. Davor wurden feature → staging (Commit X gelangt in staging) und feature → develop (Commit X gelangt in develop) gemergt. Der Commits-Badge sollte 0 zeigen.

⚠ BUG (v1.26.0): Der Commits-Badge zeigt "1". Commit X erscheint als "neu", obwohl er bereits seit dem ersten Merge in staging ist.
Step 3
4 Commits-Tab: zeigt bereits gemergten Commit

Der Commits-Tab des Bug-PR listet den Merge-Commit vom feature → develop Merge als "neuen" Commit auf.

⚠ BUG: Commit ca8218a erscheint hier als neu. Er ist jedoch bereits über den feature → staging Merge in der staging-Branch vorhanden.
Step 4
5 Finaler Zustand — unmittelbar vor der Assertion

PR-Übersicht unmittelbar vor der primären Assertion. API-Commit-Count: 1. Erwartet: 0.

⚠ ASSERTION schlägt fehl: actualCommitCount=1 ≠ 0. Commit ca8218a wird fälschlicherweise als neu gelistet.
Step 5