提交 948c5688 编写于 作者: J Joao Moreno

💄

上级 07885099
......@@ -456,7 +456,7 @@
},
{
"command": "git.syncRebase",
"when": "config.git.enabled && scmProvider == git && gitState == idle"
"when": "config.git.enabled && gitOpenRepositoryCount != 0"
},
{
"command": "git.publish",
......
......@@ -1240,8 +1240,7 @@ export class CommandCenter {
repository.pushTo(pick.label, branchName);
}
@command('git.sync', { repository: true })
async sync(repository: Repository): Promise<void> {
private async _sync(repository: Repository, rebase: boolean): Promise<void> {
const HEAD = repository.HEAD;
if (!HEAD || !HEAD.upstream) {
......@@ -1264,7 +1263,16 @@ export class CommandCenter {
}
}
await repository.sync();
if (rebase) {
await repository.syncRebase();
} else {
await repository.sync();
}
}
@command('git.sync', { repository: true })
sync(repository: Repository): Promise<void> {
return this._sync(repository, false);
}
@command('git._syncAll')
......@@ -1281,29 +1289,8 @@ export class CommandCenter {
}
@command('git.syncRebase', { repository: true })
async syncRebase(repository: Repository): Promise<void> {
const HEAD = repository.HEAD;
if (!HEAD || !HEAD.upstream) {
return;
}
const config = workspace.getConfiguration('git');
const shouldPrompt = config.get<boolean>('confirmSync') === true;
if (shouldPrompt) {
const message = localize('sync is unpredictable', "This action will push and pull commits to and from '{0}'.", HEAD.upstream);
const yes = localize('ok', "OK");
const neverAgain = localize('never again', "OK, Never Show Again");
const pick = await window.showWarningMessage(message, { modal: true }, yes, neverAgain);
if (pick === neverAgain) {
await config.update('confirmSync', false, true);
} else if (pick !== yes) {
return;
}
}
await repository.syncRebase();
syncRebase(repository: Repository): Promise<void> {
return this._sync(repository, true);
}
@command('git.publish', { repository: true })
......
......@@ -651,10 +651,9 @@ export class Repository implements Disposable {
await this.run(Operation.Push, () => this.repository.push(remote, undefined, false, true));
}
@throttle
async sync(): Promise<void> {
private async _sync(rebase: boolean): Promise<void> {
await this.run(Operation.Sync, async () => {
await this.repository.pull();
await this.repository.pull(rebase);
const shouldPush = this.HEAD && typeof this.HEAD.ahead === 'number' ? this.HEAD.ahead > 0 : true;
......@@ -665,16 +664,13 @@ export class Repository implements Disposable {
}
@throttle
async syncRebase(): Promise<void> {
await this.run(Operation.Sync, async () => {
await this.repository.pull(true);
const shouldPush = this.HEAD && typeof this.HEAD.ahead === 'number' ? this.HEAD.ahead > 0 : true;
sync(): Promise<void> {
return this._sync(false);
}
if (shouldPush) {
await this.repository.push();
}
});
@throttle
async syncRebase(): Promise<void> {
return this._sync(true);
}
async show(ref: string, filePath: string): Promise<string> {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册