我正在尝试使用 Doxygen 为我的 Android 项目生成文档,并且我想使用该FILE_VERSION_FILTER
标签自动获取任何文件的数字版本。
我知道 Git 使用哈希作为提交的 id,但是有没有办法获取单独文件的数字版本?
为了更好地理解我想要做什么,你可以从Doxygen 文档中看到这个例子
但是,我想使用 git 而不是 CVS 或 SVN。Git甚至可以吗?
[我在 Ubuntu 上,将使用 bash 作为 shell]
我正在尝试使用 Doxygen 为我的 Android 项目生成文档,并且我想使用该FILE_VERSION_FILTER
标签自动获取任何文件的数字版本。
我知道 Git 使用哈希作为提交的 id,但是有没有办法获取单独文件的数字版本?
为了更好地理解我想要做什么,你可以从Doxygen 文档中看到这个例子
但是,我想使用 git 而不是 CVS 或 SVN。Git甚至可以吗?
[我在 Ubuntu 上,将使用 bash 作为 shell]
Git
不存储存储库中对象的任何数字版本。我想您想知道对象被更改了多少次(存储在存储库中),这很容易获得:使用git log
,告诉它为每次提交生成一行文本并计算其输出的行数:
要计算foo
存储在存储库中可从当前分支访问的文件版本,请运行以下命令:
git log --oneline HEAD -- foo | wc -l
您可以替换HEAD
为分支名称以获取可从该分支访问的提交数,该分支将更改存储在文件中foo
,或者您可以完全删除它。
请记住,对于文件的每个版本,您获得的数字并不是唯一的,它取决于您用于获取日志的路径。
检查修订图的下一个片段:
* commit #4 (merge test into master)
|\
* | commit #3 (on branch master)
| * commit #2 (on branch test)
|/
* commit #1 (on master)
假设该文件foo
是在提交 #1 上添加的,并在显示的所有其他提交上进行了修改。
在不同的提交上运行上面的命令将产生以下值:
+--------+---------------+
| commit | # of versions |
+--------+---------------+
| #1 | 1 |
| #2 | 2 |
| #3 | 2 |
| #4 | 4 |
+--------+---------------+