【问题标题】:How to get sha of current git commit from R如何从 R 获取当前 git commit 的 sha
【发布时间】:2018-03-04 18:08:54
【问题描述】:

有没有办法从 R 获取当前 GIT 提交的 SHA?我需要通过函数调用(而不是硬字符串)来访问它。

我已将 GIT 作为版本控制系统进行分析,并希望在我的中间报告的脚注上打印 SHA(我的工作草稿,pdf 格式,获得自己的生命,通过查看并不会立即明显它们是在什么时候生成的;这会产生可重复性问题)。

供参考:我正在通过 R Studio 使用 R 3.4.1,并通过 r markdown 创建报告。

【问题讨论】:

    标签: r git rstudio r-markdown sha


    【解决方案1】:

    您需要调用git rev-parse 命令,如下所述:How to retrieve the hash for the current commit in Git?

    您可以使用system()

    https://stat.ethz.ch/R-manual/R-devel/library/base/html/system.html

    把它放在一起:

    system("git rev-parse HEAD", intern=TRUE)
    

    【讨论】:

      【解决方案2】:

      安装git2r包然后:

      > library(git2r)
      > r = revparse_single(path,"HEAD")
      > sha(r)
      [1] "f5bb1f115e9db0c732840298465488e8dfea5032"
      

      它还会在返回对象的其他成员中为您提供有关提交的其他信息:

      > r$author
      name:  Barry Rowlingson
      email: b.rowlingson@lancs.ac.uk
      when:  2022-01-12 18:37:14 GMT
      

      这些记录在help(commit) 中,但似乎只有sha 有一个访问器函数。

      【讨论】:

      • 感谢您指出一个有趣的包;这对我想到的任务来说有点矫枉过正,但将来可能会派上用场。
      • 我认为它现在可能是 r$sha 而不是 r@sha,因为 r 是“不是 S4 对象”。
      • @shabbychef 谢谢,NEWS 文件告诉我它在 2018 年切换到 S3!我已经编辑过了。
      猜你喜欢
      • 2011-07-27
      • 2016-12-31
      • 2015-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多