我试图更好地理解R中的renv包是如何工作的,以及它是如何与git交互的。这是我的问题
renv::restore().,那么renv能够处理它吗?
renv,它们分别称为项目A和项目B。我想从项目B中获取环境,并替换项目A中的环境。我只需要将renv文件夹从一个项目复制到另一个项目吗?发布于 2020-06-27 04:35:36
假设我的R项目中有主分支和几个git分支,我希望使用不同的环境(不同的库或相同库的不同版本)。如果我从一个分支切换到另一个分支,则需要调用renv::restore()。
renv将项目库排除在版本控制之外(以避免增加存储库的大小),因此在通常情况下,切换分支时需要恢复库路径。
这有点困难,因此另一种解决方案是将renv配置为为git存储库的每个分支使用不同的库路径。您可以使用(在项目.Rprofile中)这样的方法来完成这一任务:
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()。如果您将项目从一台机器复制到另一台机器,特别是当这些机器在不同的操作系统上运行时,这可能更合适。
https://stackoverflow.com/questions/62557319
复制相似问题