Skip to content

Allow specifying a non-branch/non-tag ref for git dependencies #7230

@Nemo157

Description

@Nemo157
Member

Describe the problem you are trying to solve
Adding a patch section referring to a reference that is not a branch or tag of the repository. For example refs/pull/<id>/head to refer to a pull request on Github.

Describe the solution you'd like
An additional ref key to go with branch, tag and rev that allows passing in a fully-qualified reference to lookup.

Notes
This may be slightly complicated as it appears that Cargo does a fetch of just refs/heads/*:refs/heads/* before looking up the specified branch locally. It might be better in any case to only fetch the requested ref from the remote to reduce traffic on repositories that have a large number of branches.

Activity

added
C-feature-requestCategory: proposal for a feature. Before PR, ping rust-lang/cargo if this is not `Feature accepted`
on Aug 9, 2019
Nemo157

Nemo157 commented on Aug 9, 2019

@Nemo157
MemberAuthor

What I mention in the note would also allow accessing revisions that are not ancestors of any public branch/tag as long as they are accessible in the remote repository. Basically performing a git fetch <repository> <rev> or git fetch <repository> <ref>:<ref> to only pull the single commit and ancestors before looking it up locally.

added
A-gitArea: anything dealing with git
on Sep 21, 2019
ehuss

ehuss commented on Jan 4, 2022

@ehuss
Contributor

This should now be implemented (via #9859 now in 1.57) to fetch any ref with the syntax rev="refs/...":

[dependencies]
cargo = { git = "https://github.com/rust-lang/cargo.git", rev = "refs/pull/9859/head" }

I'm going to close as resolved, though feel free to reopen if I have misinterpreted the request.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-gitArea: anything dealing with gitC-feature-requestCategory: proposal for a feature. Before PR, ping rust-lang/cargo if this is not `Feature accepted`

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @ehuss@Nemo157

        Issue actions

          Allow specifying a non-branch/non-tag ref for git dependencies · Issue #7230 · rust-lang/cargo