使用 git 和 Doxygen FILE_VERSION_FILTER

Using git with Doxygen FILE_VERSION_FILTER

对于 doxygen FILE_VERSION_FILTER,git 会使用什么命令?输出最好是该文件在回购中被修改的次数。

I was looking more for a git command that accepts a file name and outputs how many times that file has been included in a commit.

对于文件,您可以使用“List all commits for a specific file”中的 git log 命令之一:

git log --follow --name-only --format='%H' -- afile | wc

How to get the git commit count?”(git rev-list HEAD --count) 中的另一个选项将应用于所有存储库,而不是单个文件。
它是在 commit f69c501, Git 1.7.2-rc1, Jun 2010 中引入的。 结合 -- afile,它也可以工作。请注意,该选项仅在 commit 75d2e5a, Git 2.4.7.

中正式记录

所有回购的原始答案:

在Git中,常用的命令是git-describe.

或者:

git describe --long --all --abbrev=7

或者(如果您至少放置了一个标签)

git describe --long --tags --abbrev=7

参见“Deriving application build version from git describe - how to get a relatively straightforward string?”。

git revlist --count 接受 -- 之后的路径列表(我不知道这是最近的功能还是一直存在)。

由于 doxygen 需要使用 popen() 调用单个命令,我使用的是这样的小脚本:

#!/bin/sh

echo -n "File version: "
git -C <path_to_git_directory> rev-list HEAD --count -- 

-C 如果 doxygen 未在 git 目录中执行并且需要最新的 git 版本,则需要 -C

这是一个老问题,但由于我发现它在寻找相同的问题,所以这是我的解决方案:

FILE_VERSION_FILTER    = "git log --format='%H' -1"

它实际上只会为每个文件获取 git 修订版,这似乎是 FILE_VERSION_FILTER 的预期用途。如果愿意,您可以通过将格式从 '%H' 更改为 '%h'.

来使用缩写修订版