From 3cf9d54dcb0e56cefad5965409339ab40d452970 Mon Sep 17 00:00:00 2001 From: joan xie Date: Thu, 24 Dec 2020 08:42:47 +0800 Subject: [PATCH 1/7] Update repository.ts fix #112537 and related issues. --- extensions/git/src/repository.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/extensions/git/src/repository.ts b/extensions/git/src/repository.ts index 87f24395d6d8c..4ecac204f1eef 100644 --- a/extensions/git/src/repository.ts +++ b/extensions/git/src/repository.ts @@ -613,7 +613,7 @@ class ResourceCommandResolver { } } - getResources(resource: Resource): [Uri | undefined, Uri] { + getResources(resource: Resource): [Uri | undefined, Uri | undefined] { for (const submodule of this.repository.submodules) { if (path.join(this.repository.root, submodule.path) === resource.resourceUri.fsPath) { return [undefined, toGitUri(resource.resourceUri, resource.resourceGroupType === ResourceGroupType.Index ? 'index' : 'wt', { submoduleOf: this.repository.root })]; @@ -641,7 +641,7 @@ class ResourceCommandResolver { return undefined; } - private getRightResource(resource: Resource): Uri { + private getRightResource(resource: Resource): Uri | undefined { switch (resource.type) { case Status.INDEX_MODIFIED: case Status.INDEX_ADDED: @@ -677,7 +677,7 @@ class ResourceCommandResolver { return resource.resourceUri; } - throw new Error('Should never happen'); + return undefined; } private getTitle(resource: Resource): string { From 5c02a58d1034f0872b12034eaa4bdf6be763f113 Mon Sep 17 00:00:00 2001 From: joan xie Date: Thu, 24 Dec 2020 08:51:26 +0800 Subject: [PATCH 2/7] Update repository.ts --- extensions/git/src/repository.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/extensions/git/src/repository.ts b/extensions/git/src/repository.ts index 4ecac204f1eef..de33d9d1f81b5 100644 --- a/extensions/git/src/repository.ts +++ b/extensions/git/src/repository.ts @@ -80,7 +80,7 @@ export class Resource implements SourceControlResourceState { } get rightUri(): Uri { - return this.resources[1]; + return this.resources[1] as Uri; } get command(): Command { @@ -88,7 +88,7 @@ export class Resource implements SourceControlResourceState { } @memoize - private get resources(): [Uri | undefined, Uri] { + private get resources(): [Uri | undefined, Uri | undefined] { return this._commandResolver.getResources(this); } From dfaf19077cee28df156d67931b7f332ccd05a518 Mon Sep 17 00:00:00 2001 From: joan xie Date: Fri, 25 Dec 2020 10:20:45 +0800 Subject: [PATCH 3/7] Update smoke.test.ts --- extensions/git/src/test/smoke.test.ts | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/extensions/git/src/test/smoke.test.ts b/extensions/git/src/test/smoke.test.ts index 9e0933776a3b2..4fc8406f72816 100644 --- a/extensions/git/src/test/smoke.test.ts +++ b/extensions/git/src/test/smoke.test.ts @@ -124,4 +124,25 @@ suite('git smoke test', function () { assert.equal(repository.state.workingTreeChanges.length, 0); assert.equal(repository.state.indexChanges.length, 0); }); + + test('rename/delete conflict', async function () { + cp.execSync('git branch test', { cwd }); + cp.execSync('git checkout test', { cwd }); + + fs.unlinkSync(file('app.js')); + cp.execSync('git add .', { cwd }); + + await repository.commit('commit on test'); + cp.execSync('git checkout master', { cwd }); + + fs.renameSync(file('app.js'), file('rename.js')); + cp.execSync('git add .', { cwd }); + await repository.commit('commit on master'); + + cp.execSync('git merge test', { cwd }); + await new Promise(resolve => setTimeout(resolve, 5e3)); + + await commands.executeCommand('workbench.scm.focus'); + await new Promise(resolve => setTimeout(resolve, 5e3)); + }); }); From 9bc15e8dff1553d32c6557cc9e59ee1c34000e93 Mon Sep 17 00:00:00 2001 From: joan xie Date: Fri, 25 Dec 2020 10:34:05 +0800 Subject: [PATCH 4/7] Update smoke.test.ts --- extensions/git/src/test/smoke.test.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/extensions/git/src/test/smoke.test.ts b/extensions/git/src/test/smoke.test.ts index 4fc8406f72816..b5beab5ac2b29 100644 --- a/extensions/git/src/test/smoke.test.ts +++ b/extensions/git/src/test/smoke.test.ts @@ -139,7 +139,9 @@ suite('git smoke test', function () { cp.execSync('git add .', { cwd }); await repository.commit('commit on master'); - cp.execSync('git merge test', { cwd }); + try { + cp.execSync('git merge test', { cwd }); + } catch (e) {} await new Promise(resolve => setTimeout(resolve, 5e3)); await commands.executeCommand('workbench.scm.focus'); From 2f72514a0e6af2a71dba080b0032ed1072ffb69c Mon Sep 17 00:00:00 2001 From: joan xie Date: Fri, 25 Dec 2020 14:40:01 +0800 Subject: [PATCH 5/7] Update smoke.test.ts change command order --- extensions/git/src/test/smoke.test.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/extensions/git/src/test/smoke.test.ts b/extensions/git/src/test/smoke.test.ts index b5beab5ac2b29..4e9e74da5c0b2 100644 --- a/extensions/git/src/test/smoke.test.ts +++ b/extensions/git/src/test/smoke.test.ts @@ -126,6 +126,8 @@ suite('git smoke test', function () { }); test('rename/delete conflict', async function () { + await commands.executeCommand('workbench.scm.focus'); + cp.execSync('git branch test', { cwd }); cp.execSync('git checkout test', { cwd }); @@ -141,10 +143,10 @@ suite('git smoke test', function () { try { cp.execSync('git merge test', { cwd }); - } catch (e) {} - await new Promise(resolve => setTimeout(resolve, 5e3)); + } catch (e) { } - await commands.executeCommand('workbench.scm.focus'); - await new Promise(resolve => setTimeout(resolve, 5e3)); + await new Promise(resolve => { + setTimeout(resolve, 5e3); + }); }); }); From a322d2585ddd54014e2b61c69de8c7518f66c265 Mon Sep 17 00:00:00 2001 From: joan xie Date: Fri, 25 Dec 2020 15:03:24 +0800 Subject: [PATCH 6/7] Update smoke.test.ts --- extensions/git/src/test/smoke.test.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/extensions/git/src/test/smoke.test.ts b/extensions/git/src/test/smoke.test.ts index 4e9e74da5c0b2..c8c761bc79be0 100644 --- a/extensions/git/src/test/smoke.test.ts +++ b/extensions/git/src/test/smoke.test.ts @@ -126,8 +126,6 @@ suite('git smoke test', function () { }); test('rename/delete conflict', async function () { - await commands.executeCommand('workbench.scm.focus'); - cp.execSync('git branch test', { cwd }); cp.execSync('git checkout test', { cwd }); @@ -144,6 +142,10 @@ suite('git smoke test', function () { try { cp.execSync('git merge test', { cwd }); } catch (e) { } + + setTimeout(() => { + commands.executeCommand('workbench.scm.focus'); + }, 2e3); await new Promise(resolve => { setTimeout(resolve, 5e3); From 0a5d6b0a77d31721d1614d732668e0a87a3cbf65 Mon Sep 17 00:00:00 2001 From: Eric Amodio Date: Tue, 5 Jan 2021 01:04:23 -0500 Subject: [PATCH 7/7] Adds undefined --- extensions/git/src/repository.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/extensions/git/src/repository.ts b/extensions/git/src/repository.ts index de33d9d1f81b5..eeb90b6f6e8c0 100644 --- a/extensions/git/src/repository.ts +++ b/extensions/git/src/repository.ts @@ -79,8 +79,8 @@ export class Resource implements SourceControlResourceState { return this.resources[0]; } - get rightUri(): Uri { - return this.resources[1] as Uri; + get rightUri(): Uri | undefined { + return this.resources[1]; } get command(): Command {