首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >renv和git相互作用R

renv和git相互作用R
EN

Stack Overflow用户
提问于 2020-06-24 14:23:11
回答 1查看 694关注 0票数 1

我试图更好地理解R中的renv包是如何工作的,以及它是如何与git交互的。这是我的问题

  1. 假设我的R项目中有主分支和几个git分支,我希望使用不同的环境(不同的库或相同库的不同版本)。如果我从一个分支切换到另一个分支,需要调用renv::restore().

,那么renv能够处理它吗?

  1. 我有两个单独的项目,其中两个项目都运行着renv,它们分别称为项目A和项目B。我想从项目B中获取环境,并替换项目A中的环境。我只需要将renv文件夹从一个项目复制到另一个项目吗?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-27 04:35:36

假设我的R项目中有主分支和几个git分支,我希望使用不同的环境(不同的库或相同库的不同版本)。如果我从一个分支切换到另一个分支,则需要调用renv::restore()。

renv将项目库排除在版本控制之外(以避免增加存储库的大小),因此在通常情况下,切换分支时需要恢复库路径。

这有点困难,因此另一种解决方案是将renv配置为为git存储库的每个分支使用不同的库路径。您可以使用(在项目.Rprofile中)这样的方法来完成这一任务:

代码语言:javascript
复制
branch <- system("git rev-parse --abbrev-ref HEAD", intern = TRUE)
Sys.setenv(RENV_PATHS_LIBRARY = file.path("renv/library/branches", branch))

这样,renv将自动配置为为每个分支使用一个单独的库,并且在切换分支时会自动发生这种情况。

一般来说,这似乎是有用的;如果是这样的话,您可以考虑在https://github.com/rstudio/renv/issues上提交一个特性请求。

我有两个独立的项目,两个项目都在运行,分别称为项目A和项目B。我想从项目B中获取环境,并替换项目A中的环境。我是否只需要将renv文件夹从一个项目复制到另一个项目?

这应该足够了,尽管这取决于您想要复制的环境的多少。renv文件夹包含一个settings.dcf文件,定义项目设置--您可能希望也可能不希望复制这些设置。(有关?renv::settings项目特定设置的文档,请参阅renv。)

或者,您可以将项目renv.lock从项目B复制到项目A,然后调用renv::restore()。如果您将项目从一台机器复制到另一台机器,特别是当这些机器在不同的操作系统上运行时,这可能更合适。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62557319

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档