On Thu, Dec 24, 2020 at 6:22 PM Srikanth Kurapati < srikanth.kurap...@multicorewareinc.com> wrote:
> just to make sure that the is tag information is not spurious. All valid > tags will have a commit id associated with them. We read it to check if the > association is complete. > [AM] Tag's commit info in the version file and the associated parsing is unnecessary as we aren't using it anywhere. Please remove that . > > On Thu, Dec 24, 2020 at 5:55 PM Aruna Matheswaran < > ar...@multicorewareinc.com> wrote: > >> >> >> On Wed, Dec 23, 2020 at 9:40 PM Srikanth Kurapati < >> srikanth.kurap...@multicorewareinc.com> wrote: >> >>> From 06e09d500b9453b32835a6090df873b7b5842f22 Mon Sep 17 00:00:00 2001 >>> From: Srikanth Kurapati <srikanth.kurap...@multicorewareinc.com> >>> Date: Wed, 16 Dec 2020 10:52:33 +0530 >>> Subject: [PATCH] fix: avoids unnecessary lexicographic order checks on >>> git >>> changesets >>> >>> and correct variables used for git archive version reporting >>> --- >>> source/cmake/Version.cmake | 103 ++++++++++++++++--------------------- >>> 1 file changed, 44 insertions(+), 59 deletions(-) >>> >>> diff --git a/source/cmake/Version.cmake b/source/cmake/Version.cmake >>> index 37c759268..f67b77395 100644 >>> --- a/source/cmake/Version.cmake >>> +++ b/source/cmake/Version.cmake >>> @@ -28,8 +28,6 @@ >>> set(X265_VERSION "unknown") >>> set(X265_LATEST_TAG "0.0") >>> set(X265_TAG_DISTANCE "0") >>> -set(HG_ARCHETYPE "0") >>> -set(GIT_ARCHETYPE "0") >>> >>> #Find version control software to be used for live and extracted >>> repositories from compressed tarballs >>> if(CMAKE_VERSION VERSION_LESS "2.8.10") >>> @@ -43,10 +41,10 @@ else() >>> endif() >>> if(HG_EXECUTABLE) >>> #Set Version Control binary for source code kind >>> - if(EXISTS CMAKE_CURRENT_SOURCE_DIR}/../.hg_archival.txt) >>> + if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../.hg_archival.txt) >>> set(HG_ARCHETYPE "1") >>> elseif(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../.hg) >>> - set(HG_ARCHETYPE "2") >>> + set(HG_ARCHETYPE "0") >>> endif() >>> endif(HG_EXECUTABLE) >>> find_package(Git QUIET) #No restrictions on Git versions used, any >>> versions from 1.8.x to 2.2.x or later should do. >>> @@ -54,14 +52,14 @@ if(Git_FOUND) >>> find_program(GIT_EXECUTABLE git) >>> message(STATUS "GIT_EXECUTABLE ${GIT_EXECUTABLE}") >>> if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../.git) >>> - set(GIT_ARCHETYPE "2") >>> + set(GIT_ARCHETYPE "0") >>> elseif(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../x265Version.txt) >>> set(GIT_ARCHETYPE "1") >>> endif() >>> endif(Git_FOUND) >>> -if(HG_ARCHETYPE STREQUAL "1") >>> +if(HG_ARCHETYPE) >>> #Read the lines of the archive summary file to extract the version >>> - message(STATUS "SOURCE CODE IS FROM x265 ARCHIVED ZIP OR TAR BALL") >>> + message(STATUS "SOURCE CODE IS FROM x265 HG ARCHIVED ZIP OR TAR >>> BALL") >>> file(READ ${CMAKE_CURRENT_SOURCE_DIR}/../.hg_archival.txt archive) >>> STRING(REGEX REPLACE "\n" ";" archive "${archive}") >>> foreach(f ${archive}) >>> @@ -79,7 +77,8 @@ if(HG_ARCHETYPE STREQUAL "1") >>> string(SUBSTRING "${hg_node}" 0 12 X265_REVISION_ID) >>> endif() >>> message(STATUS "HG ARCHIVAL INFORMATION PROCESSED") >>> -elseif(HG_ARCHETYPE STREQUAL "2") >>> +elseif(NOT DEFINED GIT_ARCHETYPE) >>> +# means that's its neither hg archive nor git clone/archive hence it >>> has to be hg live repo as these are only four cases that need to processed >>> in mutual exclusion. >>> execute_process(COMMAND >>> ${HG_EXECUTABLE} log -r. --template "{latesttag}" >>> WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} >>> @@ -107,33 +106,8 @@ elseif(HG_ARCHETYPE STREQUAL "2") >>> string(SUBSTRING ${X265_LATEST_TAG} 1 -1 X265_LATEST_TAG) >>> endif() >>> message(STATUS "HG LIVE REPO STATUS CHECK DONE") >>> -elseif(GIT_ARCHETYPE STREQUAL "2") >>> - execute_process( >>> - COMMAND >>> - ${GIT_EXECUTABLE} describe --abbrev=0 --tags >>> - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} >>> - OUTPUT_VARIABLE X265_LATEST_TAG >>> - ERROR_QUIET >>> - OUTPUT_STRIP_TRAILING_WHITESPACE >>> - ) >>> - execute_process( >>> - COMMAND >>> - ${GIT_EXECUTABLE} rev-list ${X265_LATEST_TAG}.. --count >>> --first-parent >>> - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} >>> - OUTPUT_VARIABLE X265_TAG_DISTANCE >>> - ERROR_QUIET >>> - OUTPUT_STRIP_TRAILING_WHITESPACE >>> - ) >>> - execute_process( >>> - COMMAND >>> - ${GIT_EXECUTABLE} log --pretty=format:%h -n 1 >>> - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} >>> - OUTPUT_VARIABLE X265_REVISION_ID >>> - ERROR_QUIET >>> - OUTPUT_STRIP_TRAILING_WHITESPACE >>> - ) >>> -elseif(GIT_ARCHETYPE STREQUAL "1") >>> - message(STATUS "X265 GIT ARCHIVE EXTRACT VERSION INFORMATION >>> PROCESSING") >>> +elseif(GIT_ARCHETYPE) >>> + message(STATUS "SOURCE CODE IS FROM x265 GIT ARCHIVED ZIP OR TAR >>> BALL") >>> #Read the lines of the archive summary file to extract the version >>> file(READ ${CMAKE_CURRENT_SOURCE_DIR}/../x265Version.txt filebuf) >>> STRING(REGEX REPLACE "\n" ";" filebuf "${filebuf}") >>> @@ -152,42 +126,53 @@ elseif(GIT_ARCHETYPE STREQUAL "1") >>> message(WARNING "RELEASE CHANGESET INFO NOT PRESENT IN >>> VERSION FILE") >>> endif() >>> if(DEFINED git_repositorychangeset) >>> - string(SUBSTRING "${git_repositorychangeset}" 0 9 >>> X265_REPO_ID) >>> + string(SUBSTRING "${git_repositorychangeset}" 0 9 >>> X265_REVISION_ID) >>> else() >>> - message(STATUS "X265 LATEST COMMIT TIP INFORMATION NOT >>> AVAILABLE") >>> + message(STATUS "X265 LATEST COMMIT TIP INFORMATION NOT >>> AVAILABLE") >>> endif() >>> if(DEFINED git_releasetagdistance) >>> - set(X265_TAG_DISTANCE ${git_releasetagdistance}) >>> + set(X265_TAG_DISTANCE ${git_releasetagdistance}) >>> else() >>> - message(WARNING "COMMIT INFORMATION AFTER LATEST REVISION >>> UNAVAILABLE") >>> + message(WARNING "COMMIT INFORMATION AFTER LATEST REVISION >>> UNAVAILABLE") >>> endif() >>> else() >>> message(WARNING "X265 RELEASE VERSION LABEL MISSING: >>> ${X265_LATEST_TAG}") >>> endif() >>> + message(STATUS "GIT ARCHIVAL INFORMATION PROCESSED") >>> +else() >>> + execute_process( >>> + COMMAND >>> + ${GIT_EXECUTABLE} describe --abbrev=0 --tags >>> + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} >>> + OUTPUT_VARIABLE X265_LATEST_TAG >>> + ERROR_QUIET >>> + OUTPUT_STRIP_TRAILING_WHITESPACE >>> + ) >>> + execute_process( >>> + COMMAND >>> + ${GIT_EXECUTABLE} rev-list ${X265_LATEST_TAG}.. --count >>> --first-parent >>> + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} >>> + OUTPUT_VARIABLE X265_TAG_DISTANCE >>> + ERROR_QUIET >>> + OUTPUT_STRIP_TRAILING_WHITESPACE >>> + ) >>> + execute_process( >>> + COMMAND >>> + ${GIT_EXECUTABLE} log --pretty=format:%h -n 1 >>> + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} >>> + OUTPUT_VARIABLE X265_REVISION_ID >>> + ERROR_QUIET >>> + OUTPUT_STRIP_TRAILING_WHITESPACE >>> + ) >>> + message(STATUS "GIT LIVE REPO VERSION RETRIEVED") >>> endif() >>> >>> -# formatting based on positive or negative distance from tag >>> +# formatting based on distance from tag >>> if(X265_TAG_DISTANCE STREQUAL "0") >>> - if(X265_REVISION_ID STREQUAL X265_REPO_ID) >>> - set(X265_VERSION "${X265_LATEST_TAG}") >>> - else() >>> - message(WARNING "REPO AND RELEASE CHANGESETS NOT MATCHING") >>> - endif() >>> + set(X265_VERSION "${X265_LATEST_TAG}") >>> elseif(X265_TAG_DISTANCE STRGREATER "0") >>> - if(X265_REVISION_ID STRLESS X265_REPO_ID) >>> - set(X265_VERSION >>> "${X265_LATEST_TAG}+${X265_TAG_DISTANCE}-${X265_REVISION_ID}") >>> - else() >>> - message(WARNING "ARCCHIVE TIP CHANGESET TO BE GREATER THAN >>> REVISION ID") >>> - endif() >>> -elseif(X265_TAG_DISTANCE STRLESS "0") >>> - if(X265_REVISION_ID STRGREATER X265_REPO_ID) >>> - set(X265_VERSION >>> "${X265_LATEST_TAG}${X265_TAG_DISTANCE}+${X265_REPO_ID}") >>> - else() >>> - message(WARNING "REVISION ID EXPECTED TO BE LARGER THAN ARCHIVE >>> TIP CHANGESET") >>> - endif() >>> -else() >>> - message(ERROR "Inappropriate set of version information") >>> + set(X265_VERSION >>> "${X265_LATEST_TAG}+${X265_TAG_DISTANCE}-${X265_REVISION_ID}") >>> endif() >>> >>> #will always be printed in its entirety based on version file >>> configuration to avail revision monitoring by repo owners >>> -message(STATUS "x265 RELEASE VERSION ${X265_VERSION}") >>> +message(STATUS "X265 RELEASE VERSION ${X265_VERSION}") >>> -- >>> 2.20.1.windows.1 >>> >> [AM] The need for releasetagcommitid is still not clear. Why do we need >> that? >> >>> >>> >>> -- >>> *With Regards,* >>> *Srikanth Kurapati.* >>> _______________________________________________ >>> x265-devel mailing list >>> x265-devel@videolan.org >>> https://mailman.videolan.org/listinfo/x265-devel >>> >> >> >> -- >> Regards, >> *Aruna Matheswaran,* >> Video Codec Engineer, >> Media & AI analytics BU, >> >> >> >> _______________________________________________ >> x265-devel mailing list >> x265-devel@videolan.org >> https://mailman.videolan.org/listinfo/x265-devel >> > > > -- > *With Regards,* > *Srikanth Kurapati.* > _______________________________________________ > x265-devel mailing list > x265-devel@videolan.org > https://mailman.videolan.org/listinfo/x265-devel > -- Regards, *Aruna Matheswaran,* Video Codec Engineer, Media & AI analytics BU,
_______________________________________________ x265-devel mailing list x265-devel@videolan.org https://mailman.videolan.org/listinfo/x265-devel