fix: Duplicate commits for unreleased version with merged brances #76
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.
Unfortunately the new logic to follow the commit graph to assign commits to versions has one bug.
If there are merge commits into the unreleased version, all following commits will be counted twice. And this applies for each merge commit (and with lots of merges, this results also in quite a performance issue - I first thought it is an endless loop ...).
The problematic part is "marking" a commit to be already assigned to a version, to not assign it again (and stop following the commit graph), only works if the version string is not empty. This is not the case for the unreleased version.
For example, given the following commit graph:
This results in an unreleased version with:
This solution implemented in this PR is to assign the commits a "HEAD" version if they belong to the unreleased version.
This avoids that the commits are added more than once.