簡體   English   中英

renv 和 git 交互 R

[英]renv and git interaction R

我試圖更好地了解renv中的 renv package 如何工作以及它如何與 git 交互。 這是我的問題

  1. 假設我的 R 項目中的每個(主和分支)都有主和幾個 git 分支,我想使用不同的環境(不同的庫或相同庫的不同版本)。 renv是否能夠處理它,即如果我從一個分支切換到另一個分支,則需要調用renv::restore()

  2. 我有兩個單獨的項目,它們都在運行renv ,分別稱為項目 A 和項目 B。我想從項目 B 中獲取環境並替換項目 A 中的環境。我該如何完成它? 我只需要將renv文件夾從一個項目復制到另一個項目嗎?

假設我的 R 項目中的每個(主和分支)都有主和幾個 git 分支,我想使用不同的環境(不同的庫或相同庫的不同版本)。 renv 是否能夠處理它,即如果我從一個分支切換到另一個分支,則需要調用 renv::restore()。

renv將項目庫從版本控制中排除(以避免膨脹存儲庫大小),因此通常在切換分支時需要恢復庫路徑。

這有點費力,所以另一種解決方案是配置renvgit存儲庫的每個分支使用不同的庫路徑。 您可以通過以下方式完成此操作(在您的項目.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提交功能請求。

我有兩個單獨的項目,它們都在運行 renv,分別稱為項目 A 和項目 B。我想從項目 B 中獲取環境並替換項目 A 中的環境。我該如何完成它? 我只需要將 renv 文件夾從一個項目復制到另一個項目嗎?

這應該就足夠了,盡管這取決於您要復制多少環境。 renv文件夾包含一個settings.dcf文件,用於定義項目設置——您可能希望也可能不希望復制這些設置。 (有關renv的項目特定設置的文檔,請參閱?renv::settings settings。)

或者,您可以將項目renv.lock從項目 B 復制到項目 A,然后調用renv::restore() 如果您將項目從一台機器復制到另一台機器,這可能更合適,特別是如果這些機器運行在不同的操作系統上。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM