Как узнать ревизию ядра
|
|
MaeStroVIP | Дата: Четвер, 16.06.2011, 12:19 | Сообщение # 1 |
Сержант
Группа: V.I.P
|
Сабж.
|
|
|
|
Stalker | Дата: Субота, 18.06.2011, 19:32 | Сообщение # 2 |
Капрал
Группа: Пользователи
|
команды типа .server info не катит?
|
|
|
|
MaeStroVIP | Дата: Субота, 18.06.2011, 22:30 | Сообщение # 3 |
Сержант
Группа: V.I.P
|
в том то и фишка. Сейчас по этой команде пишет хешированное значение ревы
|
|
|
|
vkbot | Дата: Субота, 18.06.2011, 22:43 | Сообщение # 4 |
Скаут
Группа: Пользователи
|
В оф.тринити фишку с "rev: xxx" убрали ещё пару месяцев назад единственный вариант при помощи git скачав им исходники
Если есть вопросы ко мне вне форумных тем милости просим в асю(номерок указан в профиле). Всего знать не возможно. ©
|
|
|
|
MaeStroVIP | Дата: Субота, 18.06.2011, 23:59 | Сообщение # 5 |
Сержант
Группа: V.I.P
|
vkbot, у меня гит продолжает хеш версию показывать
|
|
|
|
SprinterCore | Дата: Неділя, 19.06.2011, 04:47 | Сообщение # 6 |
Рыцарь
Группа: Пользователи
|
Лови
Code diff --git a/cmake/genrev.cmake b/cmake/genrev.cmake --- a/cmake/genrev.cmake +++ b/cmake/genrev.cmake @@ -8,62 +8,54 @@ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-include(${CMAKE_SOURCE_DIR}/cmake/macros/EnsureVersion.cmake) - -set(_REQUIRED_GIT_VERSION "1.7") - -find_program(_GIT_EXEC - NAMES - git git.cmd - HINTS - ENV PATH - DOC "git installation path" +execute_process( + COMMAND hg id -n + WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" + OUTPUT_VARIABLE rev_id_str + OUTPUT_STRIP_TRAILING_WHITESPACE + ERROR_QUIET )
-if(_GIT_EXEC) - execute_process( - COMMAND "${_GIT_EXEC}" --version - WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" - OUTPUT_VARIABLE _GIT_VERSION - ERROR_QUIET +execute_process( + COMMAND hg id -i + WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" + OUTPUT_VARIABLE rev_hash_str + OUTPUT_STRIP_TRAILING_WHITESPACE + ERROR_QUIET +) + +if(EXISTS ${CMAKE_SOURCE_DIR}/.hg_archival.txt) + file(READ + ${CMAKE_SOURCE_DIR}/.hg_archival.txt rev_hash_str + LIMIT 10 + OFFSET 7 + NEWLINE_CONSUME ) - - # make sure we're using minimum the required version of git, so the "dirty-testing" will work properly - ensure_version( "${_REQUIRED_GIT_VERSION}" "${_GIT_VERSION}" _GIT_VERSION_OK) -endif() - -if(_GIT_VERSION_OK) - execute_process( - COMMAND "${_GIT_EXEC}" describe --match init --dirty=+ --abbrev=12 - WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" - OUTPUT_VARIABLE rev_info - OUTPUT_STRIP_TRAILING_WHITESPACE - ERROR_QUIET - ) -else() - message("") - message(STATUS "WARNING - Missing or outdated git - did you forget to install a recent version?") - message(STATUS "WARNING - Observe that for revision ID/hash to work you need at least version ${_REQUIRED_GIT_VERSION}") - message(STATUS "WARNING - Continuing anyway, but setting the revision-ID and hash to Rev:0 Hash: Archive") - message("") + string(STRIP ${rev_hash_str} rev_hash_str) + set(rev_id_str "Archive") + set(rev_id "0") + set(rev_hash ${rev_hash_str}) endif()
# Last minute check - ensure that we have a proper revision -# If everything above fails (means the user has erased the git revision control directory or removed the origin/HEAD tag) -if(NOT rev_info) - # No valid ways available to find/set the revision/hash, so let's force some defaults +# If everything above fails (means the user has erased the mercurial revisional control directory, or runs archive and erased their .hg_archival.txt) +if(NOT rev_id_str) + message("") + message(STATUS "WARNING - No revision-information found - have you been tampering with the sources?") + + # Ok, since we have no valid ways of finding/setting the revision, let's force some defaults set(rev_hash_str "Archive") set(rev_hash "0") set(rev_id_str "0") set(rev_id "0") -else() - # Extract revision and hash from git - string(REGEX REPLACE init-|[0-9]+-g "" rev_hash_str ${rev_info}) - string(REGEX REPLACE [+]+ "" rev_hash ${rev_hash_str}) - string(REGEX REPLACE init-|-g[^+]+ "" rev_id_str ${rev_info}) - string(REGEX REPLACE [+]+ "" rev_id ${rev_id_str}) endif()
+# Strip off excess strings (shows when the source is actually modified) +if(NOT rev_id_str MATCHES "Archive") + string(REPLACE "+" "" rev_id ${rev_id_str}) +endif() +string(REPLACE "+" "" rev_hash ${rev_hash_str}) + # Its not set during initial run if(NOT BUILDDIR) set(BUILDDIR ${CMAKE_BINARY_DIR})
Сообщение отредактировал SprinterCore - Неділя, 19.06.2011, 04:48 |
|
|
|
vkbot | Дата: Неділя, 19.06.2011, 11:31 | Сообщение # 7 |
Скаут
Группа: Пользователи
|
Если есть вопросы ко мне вне форумных тем милости просим в асю(номерок указан в профиле). Всего знать не возможно. ©
|
|
|
|
MaeStroVIP | Дата: Неділя, 19.06.2011, 11:36 | Сообщение # 8 |
Сержант
Группа: V.I.P
|
а на никсе?
|
|
|
|
vkbot | Дата: Неділя, 19.06.2011, 13:14 | Сообщение # 9 |
Скаут
Группа: Пользователи
|
вот с ними я только начинаю знакомится поэтому сказать не могу 
Если есть вопросы ко мне вне форумных тем милости просим в асю(номерок указан в профиле). Всего знать не возможно. ©
|
|
|
|
MaeStroVIP | Дата: Неділя, 19.06.2011, 16:44 | Сообщение # 10 |
Сержант
Группа: V.I.P
|
SprinterCore, что-то после изменений смайку не нравиться.
|
|
|
|
Stalker | Дата: Понеділок, 20.06.2011, 13:39 | Сообщение # 11 |
Капрал
Группа: Пользователи
|
в базе волд есть таблица вроде version называеться, там вся тебя интересующаяя информация.
|
|
|
|
MaeStroVIP | Дата: Понеділок, 20.06.2011, 15:59 | Сообщение # 12 |
Сержант
Группа: V.I.P
|
Stalker, вот если ты не знаешь, не пиши. Если че данные в эту таблицу вносятся из тех же файлов где обычно смотрят реву.
|
|
|
|