在 R 代码中显示 Git 版本
Show Git version in R Code
我正在使用 Git 作为版本控制(目前是集中式工作流,但我想转移到功能分支或 gitflow 工作流)。我使用 RStudio/Knitr 编译 PDF 文档,想知道如何在 PDF 中自动包含当前 Git 版本 - 如果可行?这样,当有人带着我给他们的文件回来找我时,我知道如何 return 到代码中的那一点。任何建议将不胜感激,谢谢 - 玛丽。
编辑:关键字是我的想法,虽然根据这个 post (gelato.unsw.edu.au/archives/git/0610/28891.html) 不推荐。有没有关于帮助脚本的建议? – user1420372 刚刚
这样做只是为了展示一个简单的例子。这是@Wander Nauta 的想法(来自对问题的评论)。
这是一个小小的 knitr 文档:
---
output: pdf_document
---
```{r}
print(system("git rev-parse --short HEAD", intern = TRUE))
```
我在新创建的本地 git 存储库中。
当我编织成 PDF 时,我得到了这个:
因此您应该能够使用它为生成它的 git 提交添加水印。
或者,如果您擅长向项目添加另一个包依赖项,则可以使用 git2r
包:
---
output: pdf_document
---
```{r}
library(git2r)
repo <- repository(".")
print(head(repo))
```
给出:
使用 git2r 包的建议非常好。使用更多功能,您可以隔离实际的 SHA。您还可以重新调整作者字段的用途,以获取文档中的 SHA header,如果您对此感兴趣的话。
这是 R Markdown 文档:
---
title: "Show Git version in R Code"
output: html_document
date: "`r format(Sys.time(), '%d %B, %Y')`"
author: "SHA: `r git2r::branch_target(git2r::head(git2r::repository(getwd())))`"
---
You could also put the SHA elsewhere, like in a concluding chunk along with session info.
```{r collapse = TRUE}
git2r::branch_target(git2r::head(git2r::repository(getwd())))
## ADD devtools::session_info() or sessionInfo() ??
```
给出
我正在使用 Git 作为版本控制(目前是集中式工作流,但我想转移到功能分支或 gitflow 工作流)。我使用 RStudio/Knitr 编译 PDF 文档,想知道如何在 PDF 中自动包含当前 Git 版本 - 如果可行?这样,当有人带着我给他们的文件回来找我时,我知道如何 return 到代码中的那一点。任何建议将不胜感激,谢谢 - 玛丽。
编辑:关键字是我的想法,虽然根据这个 post (gelato.unsw.edu.au/archives/git/0610/28891.html) 不推荐。有没有关于帮助脚本的建议? – user1420372 刚刚
这样做只是为了展示一个简单的例子。这是@Wander Nauta 的想法(来自对问题的评论)。
这是一个小小的 knitr 文档:
---
output: pdf_document
---
```{r}
print(system("git rev-parse --short HEAD", intern = TRUE))
```
我在新创建的本地 git 存储库中。
当我编织成 PDF 时,我得到了这个:
因此您应该能够使用它为生成它的 git 提交添加水印。
或者,如果您擅长向项目添加另一个包依赖项,则可以使用 git2r
包:
---
output: pdf_document
---
```{r}
library(git2r)
repo <- repository(".")
print(head(repo))
```
给出:
使用 git2r 包的建议非常好。使用更多功能,您可以隔离实际的 SHA。您还可以重新调整作者字段的用途,以获取文档中的 SHA header,如果您对此感兴趣的话。
这是 R Markdown 文档:
---
title: "Show Git version in R Code"
output: html_document
date: "`r format(Sys.time(), '%d %B, %Y')`"
author: "SHA: `r git2r::branch_target(git2r::head(git2r::repository(getwd())))`"
---
You could also put the SHA elsewhere, like in a concluding chunk along with session info.
```{r collapse = TRUE}
git2r::branch_target(git2r::head(git2r::repository(getwd())))
## ADD devtools::session_info() or sessionInfo() ??
```
给出