Получение числа репозитория подрывной деятельности в код

Из ISO14882: 2011 (e) 5.6-4:

Двоичный / оператор дает частное, а двоичный оператор% дает остаток от деления первого выражения на второй , Если второй операнд / или% равен нулю, поведение не определено. Для интегральных операндов оператор / дает алгебраическое отношение с любой дробной частью, отброшенной; если фактор a / b является представимым в типе результата, (a / b) * b + a% b равно a.

Остальное - базовая математика:

(-7/3) => -2
-2 * 3 => -6
so a%b => -1

(7/-3) => -2
-2 * -3 => 6
so a%b => 1

Обратите внимание, что

Если оба операнда неотрицательны, то остаток неотрицателен; если нет, знак остатка определяется реализацией.

из ISO14882: 2003 (e) больше не присутствует в ISO14882: 2011 (e)

39
задан Community 10 September 2008 в 08:13
поделиться

4 ответа

В то время как острота, прием ключевого слова пересмотра только обновляет файл, когда это изменяется в том пересмотре - если Вы не измените файл, тогда это продолжит отражать старый пересмотр.

, Если Вы хотите, чтобы программное обеспечение всегда отразило полное число пересмотра, тогда необходимо будет копаться в соответствующий файл записей SVN и извлечь его, который не является слишком трудным (это - XML-файл).

Википедия делает это на их страница версии для указания на пересмотр программного обеспечения, которое это запускает живой; код здесь - ищут getSvnRevision () метод.

14
ответ дан Rob 23 September 2019 в 18:03
поделиться

Можно также использовать SubWCRev, который является частью TortoiseSVN.

SubWCRev является программой консоли Windows, которая может использоваться, чтобы считать состояние Подрывной деятельности, работающей копия и дополнительно выполнить замену ключевого слова в шаблонном файле. Это часто используется в качестве части процесса сборки как средство слияния рабочей информации о копии в объект, который Вы создаете. Обычно это могло бы использоваться для включения числа пересмотра в поле “About”.

http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-subwcrev.html

13
ответ дан Bill 23 September 2019 в 18:03
поделиться

Два пути:

Встраивают $Id$ или $Revision$ в коде. Тогда набор svn:keywords = "идентификационный Пересмотр" свойство на файле. Это даст Вам последний измененный пересмотр того исходного файла. Хороший для меньших проектов и сценариев.

, С другой стороны, используют Make-файл управляемый процесс и инструмент командной строки svnversion. (Конкретный язык - это должно работать на C/C++)

echo -n "#define VERSION 1.0.1-" > version.h
svnversion -n . >> version.h

Или некоторый более сложный сценарий сборки с sed и version.h.in. Тогда всего #include version.h

, Который даст Вам номер версии репозитория, который изменится с каждой фиксацией / обновление, и, вероятно, более соответствующий номер версии для большинства проектов.

Примечание: Я также использовал человекочитаемую строку версии, которую я вручную обновляю. Пример дал бы: Версия: 1.0.1-r13445

~J

27
ответ дан jmanning2k 23 September 2019 в 18:03
поделиться

Можно использовать svn:keywords свойство для включения Rev ключевое слово.

можно тогда использовать $Rev$ в коде, и SVN развернет его автоматически при обновлении к $Rev: 256 $, который может тогда проанализировать...

[еще 114] информация о руководстве

Подрывной деятельности
4
ответ дан Vincent Robert 23 September 2019 в 18:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: