Как включать число пересмотра Подрывной деятельности в проект Delphi

Вы можете использовать event.stopPropagation(). Это предотвращает распространение события.

<div> onClick={() => { props.onClick(MenuSection.Default)} } >
          <div <span><InfoIcon /></span> Some info</div>
          <div>More Info</div>
          <div>Even more Info</div>
          <div onClick={(e) => { e.stopPropagation();props.onClick(MenuSection.NotDefault)}}><InfoIcon /></div>
    </div>
9
задан Harriv 12 December 2008 в 20:38
поделиться

5 ответов

Я соглашаюсь с комментариями о $Revision$, не являющемся правильным инструментом для задания. Используя инструмент для извлечения числа пересмотра из вывода svn информации действительно корректная вещь сделать.

Существует однако еще две вещи отметить:

  1. информация о svn только возвратит корректную информацию, если обновление svn было выполнено на каталоге с проверенными источниками. При использовании сделанных на заказ шагов, необходимо, вероятно, добавить команду для него также.

  2. информация о svn дает Вам также информацию о пути к репозиторию. Это - единственный способ дифференцироваться между источниками в соединительной линии и где-то в другом месте, как в тегах. Если Вы хотите, чтобы Ваше поле About содержало строку, чтобы правильно определить, что источники, используемые для создавания приложения, удостоверяются, что путь к репозиторию доступен также.

Править:

Это - командный сценарий, который должен быть скопирован в высокоуровневый каталог проекта. Это обновит источники из репозитория, доберется, число пересмотра SVN от svn информации называют и сравнивают его с постоянным SVN_REVISION из файла src\SvnRev.inc. Если файл будет отсутствовать, то он создаст его, если пересмотр будет отличаться, то он перезапишет его. Если svn не будет доступен, то он запишет пересмотр номер 0 в файл.

Получающийся файл src\SvnRev.inc может просто быть включен в исходный файл. Подобный файл мог быть создан, чтобы быть включенным в ресурс версии.

@echo off

setlocal
rem determine project top level directory from command file name
set PRJDIR=%~dp0
cd %PRJDIR%

set SVNREVFILE=src\SvnRev.inc

rem execute "svn info", extract "Revision: 1234" line, and take SVN rev from there
svn update
for /F " usebackq tokens=1,2 delims=: " %%i in (`svn info`) do set key=%%i&set value=%%j&call :read-svn-rev
@echo SVN revision "%SVNREV%"

rem extract "const SVN_REVISION = 1234;" line, and take header SVN rev from there
for /F " usebackq tokens=2,4 " %%i in (%SVNREVFILE%) do set name=%%i&set value=%%j&call :read-file-rev
@echo Include file revision "%FILEREV%"

rem check for valid SVN rev
if "%SVNREV%" EQU "" goto :no-svn-ref
rem do not write file if SVN ref is equal
if "%FILEREV%" EQU "%SVNREV%" goto :EOF

@echo Writing svn revision %SVNREV% to %SVNREVFILE%
@echo const SVN_REVISION = %SVNREV% ; > %SVNREVFILE%
goto :EOF

:no-svn-ref
if not exist %SVNREVFILE% goto :no-header-file
rem do not write file if SVN ref is already unset
if "%FILEREV%" EQU "0" goto :EOF
@echo Writing svn revision 0 to %SVNREVFILE%
goto :write-no-version

:no-header-file
@echo Creating %SVNREVFILE% with svn revision 0
:write-no-version
@echo const SVN_REVISION = 0 ; > %SVNREVFILE%
goto :EOF

endlocal
goto :EOF

:read-svn-rev
if "%key%" EQU "Revision" set SVNREV=%value%&
goto :EOF

:read-file-rev
if "%name%" EQU "SVN_REVISION" set FILEREV=%value%&
goto :EOF
9
ответ дан 4 December 2019 в 07:36
поделиться

Существует программа под названием SubWCRev.exe, который идет с TortoiseSVN, который сделает маркерную замену для Вас. Так где-нибудь в Вашем источнике, Вы вставляете маркер и передаете входные и выходные имена файлов SubWCRev.exe, и он заменит маркер различной информацией SVN, например, число пересмотра. Отметьте, это - автономная программа, которую можно использовать со сценарием сборки, Вы не должны использовать TortoiseSVN с ним.

13
ответ дан 4 December 2019 в 07:36
поделиться

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

1
ответ дан 4 December 2019 в 07:36
поделиться

Если Вы используете svn:keywords и включаете $Revision$ в Вашем файле это будет обновлено каждый раз, когда файл фиксируется.

Так палка это в a version файл на верхнем уровне Вашего проекта, который Вы изменяетесь/фиксируете на каждой сборке и читаете это в получить версию.

1
ответ дан 4 December 2019 в 07:36
поделиться

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

Можно сделать сценарий или небольшую программу, которая работает svn info и затем анализирует вывод для захвата числа пересмотра, которое Вы после. Можно использовать то число в сочетании с шаблоном файла RC для вставки числа пересмотра в запись информации о версии. В этом сгенерированном файле не зарегистрировались бы. Запустите скрипт как часть Вашей процедуры MSBuild.

Для версий Delphi перед MSBuild сделайте группу проекта и затем сделайте сценарий первым проектом в группе. "Создайте, все" или "Компилируют, все" запустят скрипт прежде, чем скомпилировать основной проект.

У Вас мог также быть код в каждой единице initialization раздел, который добавляет его пересмотр (как получено ответом Ieure) к глобальному списку. Затем выберите самое большое количество в списке во время выполнения. Это может заставить Вас число отображаться в "о" поле, но Вы не можете использовать его в информации о версии своей программы.

5
ответ дан 4 December 2019 в 07:36
поделиться
Другие вопросы по тегам:

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