mirror of
https://github.com/Microsoft/vscode
synced 2024-08-27 04:49:35 +00:00
parent
f9d5b65614
commit
d880689924
|
@ -260,6 +260,11 @@
|
|||
"title": "%command.fetch%",
|
||||
"category": "Git"
|
||||
},
|
||||
{
|
||||
"command": "git.fetchAll",
|
||||
"title": "%command.fetchAll%",
|
||||
"category": "Git"
|
||||
},
|
||||
{
|
||||
"command": "git.pull",
|
||||
"title": "%command.pull%",
|
||||
|
@ -494,6 +499,10 @@
|
|||
"command": "git.fetch",
|
||||
"when": "config.git.enabled && gitOpenRepositoryCount != 0"
|
||||
},
|
||||
{
|
||||
"command": "git.fetchAll",
|
||||
"when": "config.git.enabled && gitOpenRepositoryCount != 0"
|
||||
},
|
||||
{
|
||||
"command": "git.push",
|
||||
"when": "config.git.enabled && gitOpenRepositoryCount != 0"
|
||||
|
|
|
@ -36,6 +36,7 @@
|
|||
"command.merge": "Merge Branch...",
|
||||
"command.createTag": "Create Tag",
|
||||
"command.fetch": "Fetch",
|
||||
"command.fetchAll": "Fetch From All Remotes",
|
||||
"command.pull": "Pull",
|
||||
"command.pullRebase": "Pull (Rebase)",
|
||||
"command.pullFrom": "Pull from...",
|
||||
|
|
|
@ -1397,6 +1397,16 @@ export class CommandCenter {
|
|||
await repository.fetchDefault();
|
||||
}
|
||||
|
||||
@command('git.fetchAll', { repository: true })
|
||||
async fetchAll(repository: Repository): Promise<void> {
|
||||
if (repository.remotes.length === 0) {
|
||||
window.showWarningMessage(localize('no remotes to fetch', "This repository has no remotes configured to fetch from."));
|
||||
return;
|
||||
}
|
||||
|
||||
await repository.fetchAll();
|
||||
}
|
||||
|
||||
@command('git.pullFrom', { repository: true })
|
||||
async pullFrom(repository: Repository): Promise<void> {
|
||||
const remotes = repository.remotes;
|
||||
|
|
|
@ -1142,19 +1142,21 @@ export class Repository {
|
|||
await this.run(args);
|
||||
}
|
||||
|
||||
async fetch(remote?: string, ref?: string): Promise<void> {
|
||||
async fetch(options: { remote?: string, ref?: string, all?: boolean } = {}): Promise<void> {
|
||||
const args = ['fetch'];
|
||||
|
||||
if (remote) {
|
||||
args.push(remote);
|
||||
if (options.remote) {
|
||||
args.push(options.remote);
|
||||
|
||||
if (ref) {
|
||||
args.push(ref);
|
||||
if (options.ref) {
|
||||
args.push(options.ref);
|
||||
}
|
||||
} else if (options.all) {
|
||||
args.push('--all');
|
||||
}
|
||||
|
||||
try {
|
||||
await this.run(['fetch']);
|
||||
await this.run(args);
|
||||
} catch (err) {
|
||||
if (/No remote repository specified\./.test(err.stderr || '')) {
|
||||
err.gitErrorCode = GitErrorCodes.NoRemoteRepositorySpecified;
|
||||
|
|
|
@ -900,8 +900,13 @@ export class Repository implements Disposable {
|
|||
await this.run(Operation.Fetch, () => this.repository.fetch());
|
||||
}
|
||||
|
||||
@throttle
|
||||
async fetchAll(): Promise<void> {
|
||||
await this.run(Operation.Fetch, () => this.repository.fetch({ all: true }));
|
||||
}
|
||||
|
||||
async fetch(remote?: string, ref?: string): Promise<void> {
|
||||
await this.run(Operation.Fetch, () => this.repository.fetch());
|
||||
await this.run(Operation.Fetch, () => this.repository.fetch({ remote, ref }));
|
||||
}
|
||||
|
||||
@throttle
|
||||
|
|
Loading…
Reference in a new issue