Short-circuit git source updates for unchanged remote commits - #11
Open
Lowerce wants to merge 2 commits into
Open
Short-circuit git source updates for unchanged remote commits#11Lowerce wants to merge 2 commits into
Lowerce wants to merge 2 commits into
Conversation
Co-authored-by: Lowerce <31007839+Lowerce@users.noreply.github.com>
Short-circuit git source updates when remote commit is unchanged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request introduces an optimization to the source update process for Git sources, ensuring that sources are not unnecessarily refreshed if the remote commit has not changed. It also adds supporting functionality and tests for reading the remote HEAD commit from a Git repository.
Optimization for Git source updates:
SourceAuthorityServicenow checks the remote HEAD commit for Git sources before performing a refresh. If the remote commit matches the locked commit, the refresh is skipped, improving efficiency.readLockedCommitShato extract the commit SHA from aSourceRevisionobject.New functionality for reading remote commits:
readGitRemoteHeadCommitinSourceCheckoutServiceto retrieve the remote HEAD (or branch) commit SHA from a Git locator, with network retry logic.Test coverage:
updateSourcesskips the refresh if the remote commit is unchanged, and thatprepareSourceCheckoutis not called in this case.readGitRemoteHeadCommitto confirm it correctly reads the remote HEAD commit from a Git repository.vifor mocking.