Skip to content

Commit 9e929d3

Browse files
authored
Files changed doesn't properly reflect changes against non base branch (#6559)
Fixes #5545
1 parent ba0d87d commit 9e929d3

2 files changed

Lines changed: 10 additions & 2 deletions

File tree

src/view/createPullRequestDataModel.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
import * as vscode from 'vscode';
77
import { Change, Commit } from '../api/api';
8+
import { Disposable } from '../common/lifecycle';
89
import Logger from '../common/logger';
910
import { OctokitCommon } from '../github/common';
1011
import { FolderRepositoryManager } from '../github/folderRepositoryManager';
@@ -18,7 +19,7 @@ export interface CreateModelChangeEvent {
1819
compareBranch?: string;
1920
}
2021

21-
export class CreatePullRequestDataModel {
22+
export class CreatePullRequestDataModel extends Disposable {
2223
private static ID = 'CreatePullRequestDataModel';
2324
private _baseOwner: string;
2425
private _baseBranch: string;
@@ -41,6 +42,7 @@ export class CreatePullRequestDataModel {
4142
private _gitcontentProvider: GitContentProvider;
4243

4344
constructor(private readonly folderRepositoryManager: FolderRepositoryManager, baseOwner: string, baseBranch: string, compareOwner: string, compareBranch: string, public readonly repositoryName: string) {
45+
super();
4446
this._baseOwner = baseOwner;
4547
this._baseBranch = baseBranch;
4648
this._compareBranch = baseBranch;
@@ -49,6 +51,12 @@ export class CreatePullRequestDataModel {
4951
this._gitHubcontentProvider = new GitHubContentProvider(this.folderRepositoryManager.gitHubRepositories);
5052
this._constructed = new Promise<void>(resolve => this.setCompareBranch(compareBranch).then(resolve));
5153
this.compareOwner = compareOwner;
54+
this._register(folderRepositoryManager.repository.state.onDidChange(() => {
55+
if (folderRepositoryManager.repository.state.HEAD?.name === this._compareBranch) {
56+
// We assume that the commit has changed.
57+
this.update({});
58+
}
59+
}));
5260
}
5361

5462
get gitHubContentProvider(): GitHubContentProvider {

src/view/createPullRequestHelper.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,7 @@ export class CreatePullRequestHelper extends Disposable {
244244
);
245245

246246
const compareOrigin = await folderRepoManager.getOrigin(branch);
247-
const model = new CreatePullRequestDataModel(folderRepoManager, pullRequestDefaults.owner, pullRequestDefaults.base, compareOrigin.remote.owner, branch?.name ?? pullRequestDefaults.base, compareOrigin.remote.repositoryName);
247+
const model = addDisposable(new CreatePullRequestDataModel(folderRepoManager, pullRequestDefaults.owner, pullRequestDefaults.base, compareOrigin.remote.owner, branch?.name ?? pullRequestDefaults.base, compareOrigin.remote.repositoryName), this._currentDisposables);
248248
createViewProvider = this._createPRViewProvider = new CreatePullRequestViewProvider(
249249
telemetry,
250250
model,

0 commit comments

Comments
 (0)