我在另一个问题中编写了一个 R 函数来更新包的版本号。我经常使用 GitHub 和 RStudio,如果每次我打开某个项目时都会自动运行此函数(或者更好的是进行 git commit/push,但我认为这更难做到)。但我不知道该怎么做或者这是否可能。
我可以使用
.Rprofile
在每次启动 R
时运行 R 代码,这样我就可以在每次启动 R 时更新版本(或者内置它仅在日期不是今天或其他情况时才更新版本),但是似乎有点过分了。
我会用
.Rprofile
来实现这一点。有一点值得一提的是,它独立于你周围的工具链:knitr 在 RStudio 中也能工作,没有它也能工作,dito 对于 Rcpp/RInside 等也能工作。
您可以挂钩到 svn 的提交挂钩,既可以通过后端的挂钩显式地挂钩,也可以只是在末尾添加包装器脚本。我想你也可以用 git 做同样的事情,但我对它知之甚少。因此,为了将其抽象出来,我会为自己编写一个“commitThis”或“pushThis”或...函数,用于执行数字增量、测试运行、代码推送等操作。
如果您的代码需要 RStudio 已经运行(例如,因为它依赖于某些
rstudioapi::
函数),则直接将其放入 .Rprofile
中将不起作用(.Rprofile
在 RStudio 可用之前执行)。
相反,您可以为 "rstudio.sessionInit"
setHook(
hookName = "rstudio.sessionInit",
value = function(newSession) {
if (newSession) {
# your code goes here
}
},
action = "append"
)