gpt4 book ai didi

git - 使用 nodegit,如何在 git repo 中找到给定文件的最后更新日期?

转载 作者:太空狗 更新时间:2023-10-29 14:43:46 26 4
gpt4 key购买 nike

我正在尝试使用 nodegit 将 git 视为内容的数据库。因此,我正在编写函数来访问存储库中的内容。我能够检索文件 blob 和有关给定文件的其他信息,但我很难获取时间戳信息。

我想获得 1) 文件的创建日期,以及 2) 上次更新的日期。但到目前为止,我还没有弄清楚这是怎么可能的。

为了获取文件,我需要按照以下步骤操作:

1) 使用 getMasterCommit 检索最新的 Commit
2) 从Commit,使用getEntry获取文件TreeEntry
3) 从TreeEntry获取各种元数据,然后用getBlob获取Blob
4) 从 Blob 中获取其他元数据以及文件的原始文本。

问题是,我唯一可以获得日期的地方是 Commit,它有一个 date 函数。这可能有助于获取最后更新日期,但实际上并没有帮助,因为它只返回 Commmit 的日期(很明显!),但不清楚文件是否已针对该提交进行了更新。

我还希望能够获取给定文件的创建日期。我可以想象这可能通过回溯给定 TreeEntry 的提交历史来获得,但我还不清楚如何做到这一点。事实上,能够搜索给定文件的提交历史可能正是这里所需要的。但我一直无法看到这是否可能。

谁能在这里提供指导?

最佳答案

有一个 rev walker 可以用来遍历历史,就像你在做 git log 一样。看看这个例子:https://github.com/nodegit/nodegit/blob/master/examples/walk-history-for-file.js

使用 fileHistoryWalk,您可以过滤文件以找到您感兴趣的文件,然后获取最早的包含它的 ref。

关于git - 使用 nodegit,如何在 git repo 中找到给定文件的最后更新日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40957424/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com