如何使用git2r查找文件是否已更改

How to find if file has changed using git2r

假设我有一个存储库 repo:

library(git2r)
repo <- repository(".")

此存储库中有一个子目录 R,其中包含文件 a.txtb.txt 和其他我不感兴趣的文件。如何使用 git2r找出这些文件中是否有未暂存的更改?我看过 summary(diff()),但这适用于整个回购协议的级别。

本质上,我想做的是复制 git 命令的效果:

! git diff-index --quiet HEAD -- file

如果文件中有更改,则 return false。虽然我可以使用系统命令,但不能保证用户的路径中有 git,因此命令会失败。

有没有办法复制我正在寻找的 git 功能?

此问题已在 latest development release of git2r 中解决。 status 现在有一个 all_unstaged 选项:

> status(repo, all_untracked = TRUE)
Untracked files:
    Untracked:  untracked/a.txt
    Untracked:  untracked/b.txt