На этот вопрос есть два хороших ответа (плюс множество личных предпочтений; см. Комментарий gizmo о религиозных войнах).
Для общедоступных приложений лучше всего подходит стандарт Major.Minor.Revision.Build
IMO - общедоступные пользователи могут легко определить, какая у них версия программы и, в некоторой степени, насколько устарела их версия.
Я обнаружил, что для внутренних приложений, где пользователи никогда не запрашивали приложение, развертыванием занимается ИТ-отдел, а пользователи будут звонить в службу поддержки, во многих ситуациях Year.Month.Day.Build
работает лучше. Таким образом, этот номер версии может быть декодирован для предоставления более полезной информации службе поддержки, чем общедоступная схема нумерации версий.
Однако, в конце концов, я бы дал одну рекомендацию, прежде всего - используйте систему, которую вы можете поддерживать. Если есть система, которую вы можете настроить / создать сценарий для вашего компилятора, чтобы он всегда автоматически использовался, используйте это.
Худшее, что может случиться, - это то, что вы выпускаете двоичные файлы с тем же номером версии, что и предыдущие - я недавно имел дело с автоматическими отчетами об ошибках сети (приложение для кого-то еще) и пришел к выводу, что Year.Month.Day. Номера версий сборки, показанные в дампах ядра, где даже удаленно не обновлены с самим приложением (само приложение использовало экран-заставку с реальными числами, которые, конечно, не были взяты из двоичного кода, как можно было бы предположить). В результате у меня нет возможности узнать, исходят ли аварийные дампы из двоичного файла двухлетней давности (что указывает номер версии) или из двоичного файла двухмесячной давности, и, таким образом, нет способа получить правильный исходный код (также нет контроля версий! )
person
David
schedule
19.05.2009