[x265] [X265] [Fix Patch] [Master, Release 3.5 branches] Fix: avoids unnecessary lexicographic order checks on git changesets
Aruna Matheswaran
aruna at multicorewareinc.com
Thu Dec 24 13:36:30 UTC 2020
On Thu, Dec 24, 2020 at 6:22 PM Srikanth Kurapati <
srikanth.kurapati at 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 <
> aruna at multicorewareinc.com> wrote:
>
>>
>>
>> On Wed, Dec 23, 2020 at 9:40 PM Srikanth Kurapati <
>> srikanth.kurapati at multicorewareinc.com> wrote:
>>
>>> From 06e09d500b9453b32835a6090df873b7b5842f22 Mon Sep 17 00:00:00 2001
>>> From: Srikanth Kurapati <srikanth.kurapati at 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 at 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 at videolan.org
>> https://mailman.videolan.org/listinfo/x265-devel
>>
>
>
> --
> *With Regards,*
> *Srikanth Kurapati.*
> _______________________________________________
> x265-devel mailing list
> x265-devel at videolan.org
> https://mailman.videolan.org/listinfo/x265-devel
>
--
Regards,
*Aruna Matheswaran,*
Video Codec Engineer,
Media & AI analytics BU,
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/x265-devel/attachments/20201224/4bc5aef3/attachment-0001.html>
More information about the x265-devel
mailing list