Я хотел подобную доступность и обнаружил, что $ Rev $ недостаточно, потому что он обновлялся для файла только в том случае, если была изменена ревизия этого файла (что означало, что его нужно будет редактировать и фиксировать очень долго: я не хотел этого делать . Вместо этого я хотел что-то, основанное на номере ревизии хранилища.
Для проекта, над которым я сейчас работаю, я написал Perl-скрипт, который запускает svnversion -n
из самой верхней директории моей рабочей копии и выводит самую последнюю информацию о ревизиях в файл .h (на самом деле я сравниваю его) сохраненной реверсии в не версионном файле в моей рабочей копии, так что я не перезаписываю информацию о текущей ревизии при каждой компиляции, но независимо от того, решили ли вы сделать это, зависит от вас.) Этот файл .h (или несколько файлов) в случае необходимости, в зависимости от вашего подхода) ссылки как в моем коде приложения, так и в файлах ресурсов, чтобы получить информацию, где я хотел бы.
Этот скрипт запускается как предварительный этап сборки, поэтому все обновляется до того, как начинается сборка, и соответствующие файлы автоматически перестраиваются с помощью инструмента сборки.