很久不更博了,重新回来写博客。
这是关于git输出版本信息。
具体需求是,需要在软件中能查看到当前软件的tag版本号。而且不能简单的显示tag号,还要可以区分是release还是develop版。
例如baseline最新的tag之后没有其他commit号,则只需显示tag号,如v0.1.0。若在tag之后又有其他的commit被merge,则需显示完整格式为,tag号-commite号。只要显示的版本号不带commit,就判断为release版,其他则为develop版。
具体思路为,
1.在Makefile中调用shell git命令来查询软件当前的commit, message以及tag信息。
2.在Makefile中通过sed将最新的commit,message,tag值更新到verison这个shell脚本中。
3.shell脚本通过以上信息判断版本信息,并打印。
4.将脚本做到rootfs的/usr/bin下。
最终烧到板子上之后,用户只需在命令行输version便可查询到版本信息。
但是最终发现一个神奇的命令,能直接减少上述50%左右工作量。
直接一条git describe --tags即可。完全不需要通过commit号,message信息等来判断!