如何使用 `remotes::install_gitlab` 从分支安装?

How to use `remotes::install_gitlab` to install from a branch?

我想从位于 https://gitlab.aau.at/agebhard/interp . When I select that branch on the web page, the URL changes to https://gitlab.aau.at/agebhard/interp/-/tree/spline 的 Gitlab 存储库中的“spline”分支安装 interp 包。但是,以明显的方式使用 URL 会产生错误:

remotes::install_gitlab("agebhard/interp", 
                        subdir = "-/tree/spline", 
                        host = "https://gitlab.aau.at")
#> Error: Failed to install 'unknown package' from GitLab:
#>   cannot open URL 'https://gitlab.aau.at/api/v4/projects/agebhard%2Finterp/repository/files/-%2Ftree%2Fspline%2FDESCRIPTION/raw?ref=HEAD'

reprex package (v2.0.1.9000)

创建于 2022-02-09

我最终克隆了整个存储库,然后使用 git branch 到 select 分支,并在本地安装。但是肯定 remotes::install_gitlab() 会提供一种直接从分支安装的方法吗? install_github() 函数有 ref 到 select 一个分支或标记,但我在 install_gitlab().

中没有看到该参数的等效项

您可以只使用 install_git

remotes::install_git(
  url = "https://gitlab.aau.at/agebhard/interp.git",
  ref = "spline"
)

感谢@danlooo 的回答和一些调试,我找到了使用 install_gitlab 本身的正确方法。您只需将分支放在带有 @ 符号的名称末尾,例如

remotes::install_gitlab("agebhard/interp@spline", 
                        host = "gitlab.aau.at")