From dc5ba4cb711702061ae7508d3e775d28f0ffe2c8 Mon Sep 17 00:00:00 2001 From: isheng Date: Tue, 7 Jul 2026 02:49:40 +0800 Subject: [PATCH 1/2] fix(git): raise error on invalid branch type; normalize git_log output format Two fixes in the git server: 1. git_branch: Invalid branch_type values (not 'local'/'remote'/'all') returned an error string that was silently treated as successful branch output. Now raises ValueError so the caller can properly report the error to the client. 2. git_log: The filtered (--since/--until) and unfiltered paths produced inconsistent output. The unfiltered path used !r (repr) formatting which adds quotes around values (e.g., Commit: 'abc123'), while the filtered path had no quotes. Both paths now use consistent plain formatting. Message field indentation normalized to 4 spaces in both paths. --- src/git/src/mcp_server_git/server.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/git/src/mcp_server_git/server.py b/src/git/src/mcp_server_git/server.py index 84188d8fd7..c39cafad57 100644 --- a/src/git/src/mcp_server_git/server.py +++ b/src/git/src/mcp_server_git/server.py @@ -181,7 +181,7 @@ def git_log(repo: git.Repo, max_count: int = 10, start_timestamp: Optional[str] f"Commit: {log_output[i]}\n" f"Author: {log_output[i+1]}\n" f"Date: {log_output[i+2]}\n" - f"Message: {log_output[i+3]}\n" + f" {log_output[i+3]}\n" ) return log else: @@ -190,10 +190,10 @@ def git_log(repo: git.Repo, max_count: int = 10, start_timestamp: Optional[str] log = [] for commit in commits: log.append( - f"Commit: {commit.hexsha!r}\n" - f"Author: {commit.author!r}\n" + f"Commit: {commit.hexsha}\n" + f"Author: {commit.author}\n" f"Date: {commit.authored_datetime}\n" - f"Message: {commit.message!r}\n" + f" {commit.message}\n" ) return log @@ -297,7 +297,7 @@ def git_branch(repo: git.Repo, branch_type: str, contains: str | None = None, no case 'all': b_type = "-a" case _: - return f"Invalid branch type: {branch_type}" + raise ValueError(f"Invalid branch type: {branch_type}. Expected 'local', 'remote', or 'all'.") # None value will be auto deleted by GitPython branch_info = repo.git.branch(b_type, *contains_sha, *not_contains_sha) From 012b46839e641d55939b6bb174a8bb8f2a932ef1 Mon Sep 17 00:00:00 2001 From: isheng Date: Tue, 7 Jul 2026 03:04:28 +0800 Subject: [PATCH 2/2] fix(git): restore Message prefix, keep !r removal and branch error fix --- src/git/src/mcp_server_git/server.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/git/src/mcp_server_git/server.py b/src/git/src/mcp_server_git/server.py index c39cafad57..50931f4967 100644 --- a/src/git/src/mcp_server_git/server.py +++ b/src/git/src/mcp_server_git/server.py @@ -181,7 +181,7 @@ def git_log(repo: git.Repo, max_count: int = 10, start_timestamp: Optional[str] f"Commit: {log_output[i]}\n" f"Author: {log_output[i+1]}\n" f"Date: {log_output[i+2]}\n" - f" {log_output[i+3]}\n" + f"Message: {log_output[i+3]}\n" ) return log else: @@ -193,7 +193,7 @@ def git_log(repo: git.Repo, max_count: int = 10, start_timestamp: Optional[str] f"Commit: {commit.hexsha}\n" f"Author: {commit.author}\n" f"Date: {commit.authored_datetime}\n" - f" {commit.message}\n" + f"Message: {commit.message}\n" ) return log