我尝试使用Doxygen为我的Android项目生成文档,我想使用FILE_VERSION_FILTER
标记自动获取任何文件的数字版本。
我知道Git使用哈希作为提交的id,但有没有办法获得单独文件的数字版本?
为了更好地了解我想要做什么,您可以在Doxygen documentation
中看到此示例但是,我想使用git而不是CVS或SVN。 Git甚至可以吗?
[我在Ubuntu上,将使用bash作为shell]
答案 0 :(得分:3)
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 |
+--------+---------------+