Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Backport] Do not apply patches if sub non-git repo is located in a git repo. #542

Merged
merged 2 commits into from
Aug 26, 2024
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 9 additions & 9 deletions cmake/modules/CMakeFunctions.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,6 @@ function(is_backport_patch_present patch_path repo_dir patch_in_branch)
WORKING_DIRECTORY ${repo_dir}
RESULT_VARIABLE patch_not_in_branches
OUTPUT_QUIET
ERROR_QUIET
)
if(patch_not_in_branches)
set(patch_in_branch False PARENT_SCOPE) # The patch is not present in local branch
Expand All @@ -73,7 +72,6 @@ function(is_valid_revision repo_dir revision return_val)
COMMAND ${GIT_EXECUTABLE} log -1 ${revision}
WORKING_DIRECTORY ${repo_dir}
RESULT_VARIABLE output_var
ERROR_QUIET
OUTPUT_QUIET
)
if(${output_var} EQUAL 0)
Expand Down Expand Up @@ -101,10 +99,12 @@ function(apply_patches repo_dir patches_dir base_revision target_branch)
COMMAND ${GIT_EXECUTABLE} rev-parse --verify --no-revs -q ${target_branch}
WORKING_DIRECTORY ${repo_dir}
RESULT_VARIABLE patches_needed
ERROR_QUIET
OUTPUT_QUIET
)
if(patches_needed) # The target branch doesn't exist
if(patches_needed EQUAL 128) # not a git repo
message(STATUS "[OPENCL-CLANG] ${repo_dir} is not a git repository")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sync message with 140 branch?

return()
elseif(patches_needed EQUAL 1) # The target branch doesn't exist
list(SORT patches)
is_valid_revision(${repo_dir} ${base_revision} exists_base_rev)

Expand All @@ -114,7 +114,6 @@ function(apply_patches repo_dir patches_dir base_revision target_branch)
WORKING_DIRECTORY ${repo_dir}
OUTPUT_VARIABLE repo_head
OUTPUT_STRIP_TRAILING_WHITESPACE
ERROR_QUIET
)
message(STATUS "[OPENCL-CLANG] ref ${base_revision} not exists in repository, using current HEAD:${repo_head}")
set(base_revision ${repo_head})
Expand All @@ -134,22 +133,23 @@ function(apply_patches repo_dir patches_dir base_revision target_branch)
message(STATUS "[OPENCL-CLANG] Patch ${patch} is already in local branch - ignore patching")
else()
execute_process( # Apply the patch
COMMAND ${GIT_EXECUTABLE} am --3way --ignore-whitespace ${patch}
COMMAND ${GIT_EXECUTABLE} am --3way --ignore-whitespace -C0 ${patch}
WORKING_DIRECTORY ${repo_dir}
OUTPUT_VARIABLE patching_log
ERROR_QUIET
)
message(STATUS "[OPENCL-CLANG] Not present - ${patching_log}")
endif()
endforeach(patch)
else() # The target branch already exists
elseif(patches_needed EQUAL 0) # The target branch already exists
execute_process( # Check it out
COMMAND ${GIT_EXECUTABLE} checkout ${target_branch}
WORKING_DIRECTORY ${repo_dir}
ERROR_QUIET
OUTPUT_QUIET
)
endif()
if (ret_check_out OR ret_apply_patch)
message(FATAL_ERROR "[OPENCL-CLANG] Failed to apply patch!")
endif()
endfunction()

# Usage
Expand Down
Loading