From 71410e4fc178e63ab90339b72b8caa5a5789318f Mon Sep 17 00:00:00 2001 From: Ramin Tadayon Date: Fri, 10 Nov 2023 14:26:13 -0700 Subject: [PATCH] Fixes getting diff for WIP changes when creating Cloud Patches --- src/plus/drafts/draftsService.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/plus/drafts/draftsService.ts b/src/plus/drafts/draftsService.ts index 44296f8..e500404 100644 --- a/src/plus/drafts/draftsService.ts +++ b/src/plus/drafts/draftsService.ts @@ -1,5 +1,6 @@ import type { Disposable } from 'vscode'; import type { Container } from '../../container'; +import { uncommitted, uncommittedStaged } from '../../git/models/constants'; import { isSha, isUncommitted } from '../../git/models/reference'; import { isRepository } from '../../git/models/repository'; import type { GitUser } from '../../git/models/user'; @@ -212,12 +213,17 @@ export class DraftService implements Disposable { private async getCreateDraftPatchRequestFromChange( change: CreateDraftChange, ): Promise { + const isWIP = change.revision.sha === uncommitted || change.revision.sha === uncommittedStaged; const [branchNamesResult, diffResult, firstShaResult, remoteResult, userResult] = await Promise.allSettled([ isUncommitted(change.revision.sha) ? this.container.git.getBranch(change.repository.uri).then(b => (b != null ? [b.name] : undefined)) : this.container.git.getCommitBranches(change.repository.uri, change.revision.sha), change.contents == null - ? this.container.git.getDiff(change.repository.path, change.revision.baseSha, change.revision.sha) + ? this.container.git.getDiff( + change.repository.path, + isWIP ? change.revision.sha : change.revision.baseSha, + isWIP ? change.revision.baseSha : change.revision.sha, + ) : undefined, this.container.git.getFirstCommitSha(change.repository.uri), this.container.git.getBestRemoteWithProvider(change.repository.uri),