|
2393 / 1920 / 763
Регистрация: 27.07.2012
Сообщений: 5,560
|
|
TortoiseSVN. Автоматически добавлять номер ревизии в программу02.09.2014, 13:20. Показов 5839. Ответов 20
Метки нет (Все метки)
Добрый день.
Для своего проекта я использую TortoiseSVN. У меня принято такое простое "правило": номер ревизии в базе соответствует номеру версии моей программы. Мне бы хотелось, чтобы этот номер ревизии отображался в программе автоматически, т.е. мне бы не приходилось каждый раз перед фиксацией изменений править его руками в коде. Вопрос, возможно ли такое? И если возможно, то как это осуществить? Посмотрел справку по командам TortoiseSVN, ничего похожего не нашёл. Моя идея такая: в событиях после построения должен запускаться некоторый скрипт, который запишет в текстовый файл номер текущей ревизии в рабочей папке. Программа же будет открывать этот файл и отображать его содержимое. Вот какие команды (если они вообще существуют) нужно прописать в этом скрипте для получения желаемого результата?
0
|
|
| 02.09.2014, 13:20 | |
|
Ответы с готовыми решениями:
20
Номер ревизии репозитория Автоматически добавлять строки в StringGrid? А здесь смотрели?
|
|
2511 / 1132 / 582
Регистрация: 07.06.2014
Сообщений: 3,286
|
||
| 02.09.2014, 14:39 | ||
|
А вторая проблема, которая Вас подстерегает, как этот номер вставить собственно в программу. Думаю, что тут универсального ответа нет и быть не может - для каждого ЯП и компилятора есть свои пути решения проблемы.
0
|
||
|
2393 / 1920 / 763
Регистрация: 27.07.2012
Сообщений: 5,560
|
|
| 02.09.2014, 14:47 [ТС] | |
|
Sergio Leone, спасибо, что задали теже вопросы, что и я. Как получить номер ревизии - это главный вопрос темы. Как его можно вставить в программу, я уже указал начале темы, как один из вариантов. Компилятор не при чём. Во многих IDE есть настройки Post Build Steps.
0
|
|
|
Ушел с форума
|
|||
| 02.09.2014, 14:56 | |||
|
В Subversion такого точно нет, нужно писать отдельный скрипт.
А на счет перед каждой фиксацией (commit) - это лишнее, по-моему. Инкремент номера версии следует делать только перед выпуском public-сборок. Добавлено через 3 минуты затем распарсить вывод команды. Вообще, большие проекты, как правило, собираются специальными инструментами типа TeamCity или CruiseControl.NET, там такие вещи делаются автоматом. Например, у CC.NET есть для этого дела переменная CCNetLabel, а номер версии формируется так: Major.Minor.Build.Revision: Major и Minor задается вручную в файле конфигурации, Build инкрементируется при каждой сборке, а Revision соответствует ревизии репозитория (Subversion или Mercurial), из которого выполняется сборка.
2
|
|||
|
2393 / 1920 / 763
Регистрация: 27.07.2012
Сообщений: 5,560
|
|||
| 02.09.2014, 15:00 [ТС] | |||
|
Убежденный, согласен, это нужно не при каждом пострении/фиксации, но почему-то как раз, когда это действительно нужно сделать, это забывается. Да и лазить в журнал, смотреть номер ревизии бывает утомительно.
Добавлено через 1 минуту
0
|
|||
|
Ушел с форума
|
||
| 02.09.2014, 15:04 | ||
|
Если не получится, вечером напишу примерчик, сейчас у меня обед закончился и нужно идти работать
1
|
||
|
2511 / 1132 / 582
Регистрация: 07.06.2014
Сообщений: 3,286
|
|
| 02.09.2014, 15:19 | |
|
погодите. насколько я разбираюсь в TortoiseSVN, понятие номера ревизии - это свойство папки.
если у Вас в проекте несколько вложенных каталогов, то каждый из них имеет свой номер ревизии: Вас какой именно номер ревизии интересует?
0
|
|
|
2393 / 1920 / 763
Регистрация: 27.07.2012
Сообщений: 5,560
|
|||
| 02.09.2014, 15:26 [ТС] | |||
|
Добавлено через 1 минуту
1
|
|||
|
2511 / 1132 / 582
Регистрация: 07.06.2014
Сообщений: 3,286
|
||||||||||||
| 02.09.2014, 15:35 | ||||||||||||
|
По крайней мере, у меня, если в консоли написать SVN (или svn.exe), то запустится именно отсюда:
ну, например:
1
|
||||||||||||
|
2393 / 1920 / 763
Регистрация: 27.07.2012
Сообщений: 5,560
|
|
| 02.09.2014, 15:40 [ТС] | |
|
Sergio Leone, да, уже пробую. У меня пишет, что svn - неизвестная команда, хотя путь к ней в PATH прописан.
Добавлено через 1 минуту А, понял. Её там и нет. Видимо, что-то я не установил.
0
|
|
|
|
||
| 02.09.2014, 15:47 | ||
|
В svn (и не только) есть встроенная возможность автоматически прописывать в хранимый файл номер версии при commit'е. На память не помню, дома посмотрю
Добавлено через 2 минуты
1
|
||
|
2393 / 1920 / 763
Регистрация: 27.07.2012
Сообщений: 5,560
|
||
| 02.09.2014, 15:50 [ТС] | ||
|
Evg, так мне и не надо в исходные коды номер версии вставлять. Достаточно в отдельный файл, который будет открываться моей программой при работе. Хотя сейчас я руками прописываю именно в коде, но мог бы также и в отдельном файле писать.
Добавлено через 1 минуту Обнаружил вот какую утилиту в TortoiseSVN
0
|
||
|
|
||
| 02.09.2014, 15:54 | ||
|
1
|
||
|
2393 / 1920 / 763
Регистрация: 27.07.2012
Сообщений: 5,560
|
|
| 02.09.2014, 15:55 [ТС] | |
|
Evg, так мне этот файл под репозиторием и не нужен. После сборки он должен появиться в выходном каталоге и всё.
0
|
|
|
|
|||
| 02.09.2014, 15:57 | |||
|
Добавлено через 1 минуту
1
|
|||
|
2393 / 1920 / 763
Регистрация: 27.07.2012
Сообщений: 5,560
|
|||||||||||||||||
| 02.09.2014, 16:28 [ТС] | |||||||||||||||||
|
Добавлено через 26 минут Короче, вроде бы всё получилось. 1. Создал файл-шаблон (version.tmpl):
![]() Всем спасибо за ответы/советы/вопросы!
0
|
|||||||||||||||||
|
|
||
| 02.09.2014, 16:29 | ||
|
1
|
||
|
2393 / 1920 / 763
Регистрация: 27.07.2012
Сообщений: 5,560
|
|
| 02.09.2014, 16:33 [ТС] | |
|
Evg, возможно. Проект на C#, там я вообще не особо в курсе, как опции компиляции работают. Пока что, на данном этапе мне хватит и этого.
0
|
|
|
|
|
| 02.09.2014, 21:48 | |
|
Ну и вот, на всякий случай. Оно обновляется только после commit'а, но вполне себе нормально завести отдельный файл с номером ревизии и каждый раз при commit'е туда впихивать пробел. Хотя более актуальным является наличие версии только в тех бинарниках, которые отдаются на сторону или консервируются, а потому в промежутках между этими состояниями файл можно не трогать и не париться из-за того, что он не ту версию показывают. А в нормальном состоянии так вообще перед выдачей куда-либо создаётся tag, в котором всё равно будет commit и автоматическое изменение версии
http://svnbook.red-bean.com/ni... words.html
0
|
|
|
Ушел с форума
|
|||||||
| 02.09.2014, 22:01 | |||||||
попробовать CruiseControl.NET, раз уж такие задачи возникают. Сам пользуюсь уже года три, наверное.
0
|
|||||||
| 02.09.2014, 22:01 | |
|
Помогаю со студенческими работами здесь
20
Как автоматически добавлять всех новых контактеров в черный список скайп В "сообщение" автоматически добавлять свойство Title страницы, с которой пришел пользователь Автоматически меняющийся номер формы Номер контракта автоматически на PHP Mysql
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога
Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|