Skip to content

Commit

Permalink
Preserve ref in desktop remote -> local clone (#189852)
Browse files Browse the repository at this point in the history
  • Loading branch information
joyceerhl authored Aug 7, 2023
1 parent 39e5daf commit 4083eee
Showing 1 changed file with 15 additions and 9 deletions.
24 changes: 15 additions & 9 deletions extensions/git/src/commands.ts
Original file line number Diff line number Diff line change
Expand Up @@ -749,20 +749,26 @@ export class CommandCenter {
const ref = selection.repository.HEAD?.upstream?.name;

if (uri !== undefined) {
// Launch desktop client if currently in web
let target = `${env.uriScheme}://vscode.git/clone?url=${encodeURIComponent(uri)}`;
if (env.uiKind === UIKind.Web) {
const isWeb = env.uiKind === UIKind.Web;
const isRemote = env.remoteName !== undefined;

if (isWeb || isRemote) {
if (ref !== undefined) {
target += `&ref=${encodeURIComponent(ref)}`;
}
return Uri.parse(target);
}

// If already in desktop client but in a remote window, we need to force a new window
// so that the git extension can access the local filesystem for cloning
if (env.remoteName !== undefined) {
target += `&windowId=_blank`;
return Uri.parse(target);
if (isWeb) {
// Launch desktop client if currently in web
return Uri.parse(target);
}

if (isRemote) {
// If already in desktop client but in a remote window, we need to force a new window
// so that the git extension can access the local filesystem for cloning
target += `&windowId=_blank`;
return Uri.parse(target);
}
}

// Otherwise, directly clone
Expand Down

0 comments on commit 4083eee

Please sign in to comment.