Команда svnversion
является правильным способом сделать это. Он выводит номер ревизии, в которой находится вся ваша рабочая копия, или диапазон ревизий, если ваша рабочая копия смешана (например, некоторые каталоги обновлены, а некоторые нет). Также будет указано, имеет ли рабочая копия локальные модификации. Например, в довольно нечистом рабочем каталоге:
$ svnversion
662:738M
Ключевое слово $ Revision $ не делает то, что вы хотите: оно изменяется только тогда, когда делает содержащийся файл. Книга Subversion дает более подробно . Команда «svn info» также не делает то, что вы хотите, поскольку она только сообщает вам о состоянии вашего текущего каталога, игнорируя состояние любых подкаталогов. В том же рабочем дереве, что и в предыдущем примере, у меня было несколько подкаталогов, которые были новее, чем каталог, в котором я находился, но «svn info» не замечает:
$ svn info
... snip ...
Revision: 662
Легко включить svnversion в процесс сборки, чтобы каждая сборка получала номер редакции в какой-то доступной для исполнения форме. Например, для проекта Java у меня был файл makefile, который вывел вывод svnversion в файл .properties.