@@ -30,7 +30,7 @@ import {
3030}  from  '../../../../git/parsers/logParser' ; 
3131import  type  {  GitGraphSearch ,  GitGraphSearchResultData ,  GitGraphSearchResults  }  from  '../../../../git/search' ; 
3232import  {  getSearchQueryComparisonKey ,  parseSearchQueryCommand  }  from  '../../../../git/search' ; 
33- import  {  isBranchStarred  }  from  '../../../../git/utils/-webview/branch.utils' ; 
33+ import  {  getDefaultBranchName ,   isBranchStarred  }  from  '../../../../git/utils/-webview/branch.utils' ; 
3434import  {  getRemoteIconUri  }  from  '../../../../git/utils/-webview/icons' ; 
3535import  {  groupWorktreesByBranch  }  from  '../../../../git/utils/-webview/worktree.utils' ; 
3636import  { 
@@ -636,22 +636,22 @@ export class GraphGitSubProvider implements GitGraphSubProvider {
636636			const  svc  =  this . container . git . getRepositoryService ( repoPath ) ; 
637637
638638			// Get stored merge target configurations 
639- 			const  [ storedTargetResult ,   storedMergeBaseResult ]  =  await  Promise . allSettled ( [ 
639+ 			const  [ targetBranchResult ,   mergeBaseResult ,   defaultBranchResult ]  =  await  Promise . allSettled ( [ 
640640				svc . branches . getStoredMergeTargetBranchName ?.( branch . name ) , 
641641				svc . branches . getBaseBranchName ?.( branch . name ) , 
642+ 				getDefaultBranchName ( this . container ,  branch . repoPath ,  branch . name ) , 
642643			] ) ; 
643- 			const  storedTarget  =  getSettledValue ( storedTargetResult ) ; 
644- 			const  validStoredTarget  =  storedTarget  &&  storedTarget  !==  upstreamName  ? storedTarget  : undefined ; 
645- 			const  storedMergeBase  =  getSettledValue ( storedMergeBaseResult ) ; 
646- 			const  validStoredMergeBase  = 
647- 				storedMergeBase  &&  storedMergeBase  !==  upstreamName  ? storedMergeBase  : undefined ; 
644+ 			const  targetBranch  =  getSettledValue ( targetBranchResult ) ; 
645+ 			const  validTargetBranch  =  targetBranch  &&  targetBranch  !==  upstreamName  ? targetBranch  : undefined ; 
646+ 			const  mergeBase  =  getSettledValue ( mergeBaseResult )  ||  getSettledValue ( defaultBranchResult ) ; 
647+ 			const  validMergeBase  =  mergeBase  &&  mergeBase  !==  upstreamName  ? mergeBase  : undefined ; 
648648
649649			// Select target with most recent common commit (closest to branch tip) 
650- 			const  validTargets  =  [ validStoredTarget ,   validStoredMergeBase ] ; 
651- 			const  mergeBase  =  await  this . selectMostRecentMergeBase ( branch . name ,  validTargets ,  svc ) ; 
650+ 			const  validTargets  =  [ validTargetBranch ,   validMergeBase ] ; 
651+ 			const  recentMergeBase  =  await  this . selectMostRecentMergeBase ( branch . name ,  validTargets ,  svc ) ; 
652652
653- 			const  isRecomposable  =  Boolean ( mergeBase  &&  mergeBase . commit  !==  branch . sha ) ; 
654- 			return  isRecomposable  ? mergeBase  : undefined ; 
653+ 			const  isRecomposable  =  Boolean ( recentMergeBase  &&  recentMergeBase . commit  !==  branch . sha ) ; 
654+ 			return  isRecomposable  ? recentMergeBase  : undefined ; 
655655		}  catch  { 
656656			// If we can't determine, assume not recomposable 
657657			return  undefined ; 
0 commit comments