使用 `devtools::install_github()` 同时安装 git 个 R 包的多个分支

concurrent install of git multiple branches of an R package with `devtools::install_github()`

如标题所述:是否可以在同一个 R 环境中安装同一个包 side-by-side 的多个 git 分支?我想做一些基准测试,比较同一 session 中的两个分支会更容易。我认为一种解决方法是更改​​新分支中 DESCRIPTION 文件中的包名称,但是是否有更聪明的方法来使用 devtools?

示例代码:

devtools::install_github("mkoohafkan/RAStestR", ref = "master")
# overwrites the prior install
devtools::install_github("mkoohafkan/RAStestR", ref = "hdf5r_transition")

简而言之,没有。至少不是没有额外的层。继续阅读。

虽然 git(协议和客户端)支持 "branches" 类似于允许您轻松切换的虚拟文件系统,但 R 不支持。

对于您安装的每个软件包,只能安装一个版本。

但不要绝望,因为文件系统可以作为后端,R可以通过调整库路径切换.这些都在 help(Startup) 中,但它可能有助于明确。

你能做什么(我在这里嘲笑这个)

mkdir master; cd master; installFromBranch.R master; cd ..
mkdir featureA; cd featureA; installFromBranch.R featureA; cd ..
mkdir featureB; cd featureA; installFromBranch.R featureB; cd ..

然后在 R 中使用,比如说,

.libPaths("master"); library("mypackage")

或者如果你想要一个功能

.libPaths("featureA"); library("mypackage")

您也可以使用R_LIB_USER=featureA Rscript -e '.....someCommandHere...'

简而言之:将 分支 映射到您安装的 目录 并告诉 R 这些目录。