MCPcopy Create free account
hub / github.com/bearlyai/OpenADE / handleGetMergeBase

Function handleGetMergeBase

projects/electron/src/modules/code/git.ts:823–860  ·  view source on GitHub ↗

* Get the merge-base commit between the worktree's HEAD and a target branch

(params: GetMergeBaseParams)

Source from the content-addressed store, hash-verified

821 * Get the merge-base commit between the worktree's HEAD and a target branch
822 */
823async function handleGetMergeBase(params: GetMergeBaseParams): Promise<GetMergeBaseResponse> {
824 const startTime = Date.now()
825 logger.info("[Git:getMergeBase] Finding merge-base", JSON.stringify({
826 repoDir: params.repoDir,
827 workTreeId: params.workTreeId,
828 targetBranch: params.targetBranch,
829 }))
830
831 try {
832 validateRepoDir(params.repoDir)
833 validateWorkTreeId(params.workTreeId)
834
835 const worktreePath = getWorktreePath(params.workTreeId)
836
837 // Validate worktree exists
838 if (!fs.existsSync(worktreePath)) {
839 throw new Error(`Worktree does not exist: ${worktreePath}`)
840 }
841
842 // Find merge-base between HEAD and target branch
843 const mergeBaseResult = await execGit(["merge-base", "HEAD", params.targetBranch], worktreePath)
844
845 if (!mergeBaseResult.success) {
846 throw new Error(`Failed to find merge-base: ${mergeBaseResult.stderr}`)
847 }
848
849 const mergeBaseCommit = mergeBaseResult.stdout.trim()
850 if (!mergeBaseCommit) {
851 throw new Error("No merge-base found")
852 }
853
854 logger.info("[Git:getMergeBase] Found merge-base", JSON.stringify({ mergeBaseCommit, duration: Date.now() - startTime }))
855 return { mergeBaseCommit }
856 } catch (error: any) {
857 logger.error("[Git:getMergeBase] Error:", JSON.stringify({ error: error.message, stack: error.stack, duration: Date.now() - startTime }))
858 throw error
859 }
860}
861
862/**
863 * Parse stats from a unified diff patch

Callers 1

getRuntimeMergeBaseFunction · 0.85

Calls 5

validateRepoDirFunction · 0.85
validateWorkTreeIdFunction · 0.85
getWorktreePathFunction · 0.85
execGitFunction · 0.85
errorMethod · 0.80

Tested by

no test coverage detected