mirror of
https://github.com/microsoft/vscode.git
synced 2026-04-24 02:28:34 +01:00
scm: multiroot refresh
This commit is contained in:
@@ -5,7 +5,7 @@
|
||||
|
||||
'use strict';
|
||||
|
||||
import { Uri, commands, scm, Disposable, window, workspace, QuickPickItem, OutputChannel, Range, WorkspaceEdit, Position, LineChange, SourceControlResourceGroup, SourceControlResourceState, TextDocumentShowOptions, ViewColumn } from 'vscode';
|
||||
import { Uri, commands, scm, Disposable, window, workspace, QuickPickItem, OutputChannel, Range, WorkspaceEdit, Position, LineChange, SourceControl, SourceControlResourceGroup, SourceControlResourceState, TextDocumentShowOptions, ViewColumn } from 'vscode';
|
||||
import { Ref, RefType, Git, GitErrorCodes, Branch } from './git';
|
||||
import { Repository, Resource, Status, CommitOptions, ResourceGroupType } from './repository';
|
||||
import { Model } from './model';
|
||||
@@ -145,8 +145,22 @@ export class CommandCenter {
|
||||
});
|
||||
}
|
||||
|
||||
@command('git.refresh', { repository: true })
|
||||
async refresh(repository: Repository): Promise<void> {
|
||||
@command('git.refresh')
|
||||
async refresh(sourceControl?: SourceControl): Promise<void> {
|
||||
let repository: Repository | undefined = undefined;
|
||||
|
||||
if (sourceControl) {
|
||||
repository = this.model.getRepositoryFromSourceControl(sourceControl);
|
||||
}
|
||||
|
||||
if (!repository) {
|
||||
repository = await this.model.pickRepository();
|
||||
}
|
||||
|
||||
if (!repository) {
|
||||
return;
|
||||
}
|
||||
|
||||
await repository.status();
|
||||
}
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
'use strict';
|
||||
|
||||
import { Uri, window, QuickPickItem, Disposable, SourceControlResourceGroup } from 'vscode';
|
||||
import { Uri, window, QuickPickItem, Disposable, SourceControl, SourceControlResourceGroup } from 'vscode';
|
||||
import { Repository, State } from './repository';
|
||||
import { memoize } from './decorators';
|
||||
import { toDisposable, filterEvent, once } from './util';
|
||||
@@ -60,7 +60,17 @@ export class Model {
|
||||
return pick && pick.repository;
|
||||
}
|
||||
|
||||
getRepositoryFromResourceGroup(resourceGroup?: SourceControlResourceGroup): Repository | undefined {
|
||||
getRepositoryFromSourceControl(sourceControl: SourceControl): Repository | undefined {
|
||||
for (let [, repository] of this.repositories) {
|
||||
if (sourceControl === repository.sourceControl) {
|
||||
return repository;
|
||||
}
|
||||
}
|
||||
|
||||
return undefined;
|
||||
}
|
||||
|
||||
getRepositoryFromResourceGroup(resourceGroup: SourceControlResourceGroup): Repository | undefined {
|
||||
for (let [, repository] of this.repositories) {
|
||||
if (resourceGroup === repository.mergeGroup || resourceGroup === repository.indexGroup || resourceGroup === repository.workingTreeGroup) {
|
||||
return repository;
|
||||
|
||||
Reference in New Issue
Block a user