Feature/Prevent remote being returned as source branch #2859
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.
Description
I've made a change to the
FindCommitBranchWasBranchedFrom
method ofRepositoryStore
in order to re-align it with its previous behaviour prior to v5.6.4. This change enhances the check performed on a branch when determining if it should be returned as a source branch or not, by doing an equivalence check rather than an equality check.Related Issue
#2801 - though this issue was raised regarding a separate (won't fix) issue, so wonder whether we need a separate issue?
Motivation and Context
Prior to v5.6.4, source branches were compared using an
IsSameBranch
method, which did an equivalence check on both branches using theNameWithoutRemote
method.In 5.6.4, this was changed to be an equality check. Remote branches fail the equality check and are therefore returned as source branches of local branches. This results in CommitsSinceVersionSource always being 0 when the remote and local branches are in sync, for example when running builds on the build server.
How Has This Been Tested?
I added a new, failing test that demonstrates the behaviour that I'm seeing. I've then applied the fix that resolves my issue and confirmed that all new and existing tests pass.
Checklist: