Ver código fonte

Scopes PR worktree created branches to `pr/`

main
Eric Amodio 1 ano atrás
pai
commit
535f6571f5
1 arquivos alterados com 9 adições e 8 exclusões
  1. +9
    -8
      src/commands/ghpr/openOrCreateWorktree.ts

+ 9
- 8
src/commands/ghpr/openOrCreateWorktree.ts Ver arquivo

@ -12,11 +12,11 @@ import { Logger } from '../../system/logger';
import { waitUntilNextTick } from '../../system/promise'; import { waitUntilNextTick } from '../../system/promise';
import { Command } from '../base'; import { Command } from '../base';
interface PullRequestNode {
readonly pullRequestModel: PullRequest;
interface GHPRPullRequestNode {
readonly pullRequestModel: GHPRPullRequest;
} }
interface PullRequest {
interface GHPRPullRequest {
readonly base: { readonly base: {
readonly repositoryCloneUrl: { readonly repositoryCloneUrl: {
readonly owner: string; readonly owner: string;
@ -46,7 +46,7 @@ export class OpenOrCreateWorktreeCommand extends Command {
super(Commands.OpenOrCreateWorktreeForGHPR); super(Commands.OpenOrCreateWorktreeForGHPR);
} }
async execute(...args: [PullRequestNode | PullRequest, ...unknown[]]) {
async execute(...args: [GHPRPullRequestNode | GHPRPullRequest, ...unknown[]]) {
const [arg] = args; const [arg] = args;
let pr; let pr;
if ('pullRequestModel' in arg) { if ('pullRequestModel' in arg) {
@ -80,9 +80,10 @@ export class OpenOrCreateWorktreeCommand extends Command {
} }
const branchName = `${remoteOwner}/${ref}`; const branchName = `${remoteOwner}/${ref}`;
const prBranchName = `pr/${branchName}`;
const worktrees = await repo.getWorktrees(); const worktrees = await repo.getWorktrees();
const worktree = worktrees.find(w => w.branch === branchName);
const worktree = worktrees.find(w => w.branch === branchName || w.branch === prBranchName);
if (worktree != null) { if (worktree != null) {
void openWorktree(worktree); void openWorktree(worktree);
@ -121,18 +122,18 @@ export class OpenOrCreateWorktreeCommand extends Command {
repo, repo,
undefined, undefined,
createReference(branchName, repo.path, { refType: 'branch', name: branchName, remote: true }), createReference(branchName, repo.path, { refType: 'branch', name: branchName, remote: true }),
{ createBranch: branchName },
{ createBranch: prBranchName },
); );
// Ensure that the worktree was created // Ensure that the worktree was created
const worktree = await this.container.git.getWorktree(repo.path, w => w.branch === branchName);
const worktree = await this.container.git.getWorktree(repo.path, w => w.branch === prBranchName);
if (worktree == null) return; if (worktree == null) return;
// Save the PR number in the branch config // Save the PR number in the branch config
// https://github.com/Microsoft/vscode-pull-request-github/blob/0c556c48c69a3df2f9cf9a45ed2c40909791b8ab/src/github/pullRequestGitHelper.ts#L18 // https://github.com/Microsoft/vscode-pull-request-github/blob/0c556c48c69a3df2f9cf9a45ed2c40909791b8ab/src/github/pullRequestGitHelper.ts#L18
void this.container.git.setConfig( void this.container.git.setConfig(
repo.path, repo.path,
`branch.${branchName}.github-pr-owner-number`,
`branch.${prBranchName}.github-pr-owner-number`,
`${rootOwner}#${rootRepository}#${number}`, `${rootOwner}#${rootRepository}#${number}`,
); );
} catch (ex) { } catch (ex) {

Carregando…
Cancelar
Salvar