i use git as a version tracker for my c++ project.
sometimes i need to repeat a calculation and i would like to know which version of the program i used.
what would be a good way to put a # of the commit into the main executable? in other words. i’d like the program to tell me the # of the current commit in an introductory message as i run the program.
one way i can think of is to make the c++ program lunch “git log” from shell and extract the commit # but i’m not sure how to do it during make.
(I use linux)
Probably the easiest way to do this would be to add to your makefile a rule to generate a .c file with the current git commit ID:
Now simply add
gitversion.cto your build process as normal. Make sure to remove it onmake clean, and add it to.gitignoreso it’s not added to the git repository accidentally. Add anextern const char *gitversion;to a header somewhere, and you can access it like that.