Skip to content

always set upstream as default remote #3647

@scarf005

Description

@scarf005

The problem

Image

due to origin being default remote, opening issue/PR on gitlens constantly opens the nonexistent link on fork.

Image

this can be addressed by manually setting default remote to upstream in REMOTES pane, but it would be more ergonomic to do it automatically since forks have upstream remote.

Steps to reproduce

Prerequisites

Actual result

  • autolink in a blame pop-up goes to origin:
  • if a commit is linked to the PR it links to origin as well.

Explanation

It's in sorting.ts where origin goes earlier than upstream

export function sortRemotes<T extends GitRemote>(remotes: T[]): T[] {
	return remotes.sort(
		(a, b) =>
			(a.default ? -1 : 1) - (b.default ? -1 : 1) ||
			(a.name === 'origin' ? -1 : 1) - (b.name === 'origin' ? -1 : 1) ||
			(a.name === 'upstream' ? -1 : 1) - (b.name === 'upstream' ? -1 : 1) ||
			sortCompare(a.name, b.name),
	);
}

Then it goes to hovers.ts where the first remote is taken:

remotes = remotesResult.value;
[remote] = remotes;

The proposal

Let user configure a default remote name that would go before origin. Or even let user configure a preferred sequence so it would work like: const preferredRemoteNames = getConfigured() ?? ['origin', 'upstream']

Metadata

Metadata

Assignees

No one assigned

    Labels

    triagedTeam has reviewed, verified, or reproduced this

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions