@@ -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