Skip to content

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

Closed

Description

@Nemo157

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

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

    @Nemo157
    ContributorAuthor

    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.

  3. added
    A-gitArea: anything dealing with git
    on Sep 21, 2019
  4. 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

      Issue actions