git_commit during a merge records one parent and leaves MERGE_HEAD in place
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 2/5
- Geschätzter Aufwand
- 1-3 Stunden
- Anfängerfreundlichkeit
- 75/100
Rechercherichtung
Der Bug befindet sich in src/git/src/mcp_server_git/server.py, wo git_commit repo.index.commit() aufruft, ohne den Merge-Status zu behandeln. Beginnen Sie mit der Untersuchung dieser Funktion und der Signatur von IndexFile.commit() aus GitPython. Wenn MERGE_HEAD existiert, lesen Sie dessen Commits und übergeben Sie sie als parent_commits, löschen Sie anschließend MERGE_HEAD, MERGE_MSG und MERGE_MODE. Fügen Sie einen Test in der Git-Testsuite hinzu, der einen Merge mit --no-commit durchführt, git_commit aufruft und zwei Eltern sowie keinen verbleibenden Merge-Status überprüft.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Describe the bug
git_commit cannot conclude a merge. While a merge is in progress (MERGE_HEAD present, e.g. after git merge --no-commit or a resolved conflict), it writes a commit with one parent, HEAD, and leaves MERGE_HEAD (and MERGE_MSG) in place, so the repository stays in merge state and the merged branch's history is not recorded.
src/git/src/mcp_server_git/server.py, git_commit calls repo.index.commit(message). GitPython's IndexFile.commit() takes parent_commits=None, which means [repo.head.commit] only; it neither reads nor clears MERGE_HEAD.
Found in the Copilot review of #5007 (the fix for #4762), which keeps the empty-merge-commit case committable but, like the code before it, records it with one parent. This predates #5007: any merge resolved through git_commit has always been recorded this way.
To Reproduce
import git
# repo on main with a branch `side` that adds side.txt
repo.git.merge("side", "--no-commit", "--no-ff")
commit = repo.index.commit("merge side") # what git_commit does
len(commit.parents) # 1, git commit would give 2
(Path(repo.git_dir) / "MERGE_HEAD").exists() # True, merge still in progress
Expected behavior
While MERGE_HEAD is present, git_commit records HEAD plus every MERGE_HEAD commit as parents and clears the merge state, as git commit does (either by shelling out to git commit, or by passing parent_commits and removing MERGE_HEAD/MERGE_MSG/MERGE_MODE). A test asserts both parents and that MERGE_HEAD is gone.
Additional context
Related: #659 (a git_merge tool), which would make this path reachable from the server alone.
- Vorherrschende Sprache
- TypeScript
- Sterne
- 91k
- Forks
- 11.8k
- Ø Merge
- 6 Std. 33 Min.
- Gemergte PRs (30 T.)
- 79
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus modelcontextprotocol/servers
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
modelcontextprotocol/servers#5071 · 2 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
git: git_create_branch is marked non-destructive but silently resets an existing packed branchOffen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 85/100
modelcontextprotocol/servers#5059 · 2 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
mcp-server-fetch: `fetch` prompt returns JSON-RPC error code 0 with the raw exception text for an invalid URLEvtl. wieder frei Ein Pull Request dazu wurde ohne Merge geschlossen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
modelcontextprotocol/servers#4914 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
CLAUDE.md: tool-naming rule (kebab-case) disagrees with filesystem and memory serversEvtl. vergeben @liang0417 hat das vor 10 Tagen übernommen. Offen
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 92/100
modelcontextprotocol/servers#4892 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
Filesystem README recommends deprecated MCP Roots protocol for restricting directory accessEvtl. vergeben @its-amann hat das vor 15 Tagen übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
modelcontextprotocol/servers#4844 ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in modelcontextprotocol/servers
Ähnliche Issues
-
[Bug]: [MCP/CLI] Bare loopback IP addresses (127.0.0.1:port) and hosts with ports fail to navigate due to erroneous scheme inferenceEvtl. vergeben @alok-108 hat das heute übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
microsoft/playwright#43263 ·
Maintainer antworten meist innerhalb von 1 Tag
-
bug priority:medium
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 65/100
Maintainer antworten meist innerhalb von 1 Tag
-
community first-timers-only good first issue hacktoberfest help wanted low hanging fruit up-for-grabs
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 75/100
lingdojo/kana-dojo#32018 · 1 Kommentar · 5 Reaktionen ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
paperclipai/paperclip#15751 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
BuilderIO/agent-native#7275 ·
Maintainer antworten meist innerhalb von 1 Tag