From ad90f40088573f7d2b18f9afd0f53e7591c00d86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9E=97=E5=87=AF90331?= <90331@sangfor.com> Date: Mon, 18 May 2026 20:06:15 +0800 Subject: [PATCH] feat(rawDump): add parent_ids to commit payload Include parent commit hashes in raw dump commit reporting. - git log format now includes %P (parent hashes) - parseCommitLog extracts parent_ids as string array - CommitPayload type extended with parent_ids field - merge commits may have multiple parents Co-Authored-By: Claude Opus 4.7 --- src/services/rawDump/git.ts | 10 ++++++---- src/services/rawDump/types.ts | 1 + src/services/rawDump/worker.ts | 1 + 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/services/rawDump/git.ts b/src/services/rawDump/git.ts index ba8c13a03..776d5f5e7 100644 --- a/src/services/rawDump/git.ts +++ b/src/services/rawDump/git.ts @@ -77,15 +77,17 @@ export function parseCommitLog(output: string): Array<{ commit_time: string git_user_name: string git_user_email: string + parent_ids: string[] subject: string }> { if (!output.trim()) return [] return output .split('\n') .map((line) => { - const [commit_id, commit_time, git_user_name, git_user_email, ...rest] = line.split('|') + const [commit_id, commit_time, git_user_name, git_user_email, parent_ids_str, ...rest] = line.split('|') if (!commit_id || !git_user_email) return null - return { commit_id, commit_time, git_user_name, git_user_email, subject: rest.join('|') } + const parent_ids = parent_ids_str ? parent_ids_str.trim().split(' ').filter(Boolean) : [] + return { commit_id, commit_time, git_user_name, git_user_email, parent_ids, subject: rest.join('|') } }) .filter((item): item is NonNullable => !!item) } @@ -96,12 +98,12 @@ export async function getCommitLog(cwd: string, lastCommit?: string): Promise) // 每成功一个 commit 立即更新 state,避免失败后全部重传