@@ -30,7 +30,7 @@ import {
30
30
} from '../../../../git/parsers/logParser' ;
31
31
import type { GitGraphSearch , GitGraphSearchResultData , GitGraphSearchResults } from '../../../../git/search' ;
32
32
import { getSearchQueryComparisonKey , parseSearchQueryCommand } from '../../../../git/search' ;
33
- import { isBranchStarred } from '../../../../git/utils/-webview/branch.utils' ;
33
+ import { getDefaultBranchName , isBranchStarred } from '../../../../git/utils/-webview/branch.utils' ;
34
34
import { getRemoteIconUri } from '../../../../git/utils/-webview/icons' ;
35
35
import { groupWorktreesByBranch } from '../../../../git/utils/-webview/worktree.utils' ;
36
36
import {
@@ -636,22 +636,22 @@ export class GraphGitSubProvider implements GitGraphSubProvider {
636
636
const svc = this . container . git . getRepositoryService ( repoPath ) ;
637
637
638
638
// Get stored merge target configurations
639
- const [ storedTargetResult , storedMergeBaseResult ] = await Promise . allSettled ( [
639
+ const [ targetBranchResult , mergeBaseResult , defaultBranchResult ] = await Promise . allSettled ( [
640
640
svc . branches . getStoredMergeTargetBranchName ?.( branch . name ) ,
641
641
svc . branches . getBaseBranchName ?.( branch . name ) ,
642
+ getDefaultBranchName ( this . container , branch . repoPath , branch . name ) ,
642
643
] ) ;
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 ;
648
648
649
649
// 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 ) ;
652
652
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 ;
655
655
} catch {
656
656
// If we can't determine, assume not recomposable
657
657
return undefined ;
0 commit comments