Message ID | 20240304134241.20447-2-will@kernel.org (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
Series | b4: ty: Fix incorrect patch/commit association | expand |
diff --git a/src/b4/ty.py b/src/b4/ty.py index a8bdabf5bcbc..950c357a89c5 100644 --- a/src/b4/ty.py +++ b/src/b4/ty.py @@ -217,7 +217,13 @@ def auto_locate_series(gitdir: Optional[str], jsondata: dict, branch: str, success = True matches += 1 break - elif len(patch) > 2 and len(patch[2]) and len(commit[2]): + + if success: + continue + + # try to locate by tracker + for pwhash, commit in commits.items(): + if len(patch) > 2 and len(patch[2]) and len(commit[2]): for tracker in commit[2]: if tracker.find(patch[2]) >= 0: logger.debug('Matched using recorded message-id')
Nicolin reports that 'b4 ty' produced a "thank you" letter with incorrect commit IDs: https://lore.kernel.org/r/ZeDtfKMUXnOnJOic@Asurada-Nvidia This appears to be because of the creative use of Message-Ids in the series at: https://lore.kernel.org/r/0-v6-96275f25c39d+2d4-smmuv3_newapi_p1_jgg@nvidia.com For example, comparing the Message-Id of patches 1 and 11 of that series, we can see that one is a substring of the other: Message-Id: <1-v6-96275f25c39d+2d4-smmuv3_newapi_p1_jgg@nvidia.com> Message-Id: <11-v6-96275f25c39d+2d4-smmuv3_newapi_p1_jgg@nvidia.com> This confuses auto_locate_series(), as it will end up matching the Message-Id of patch 1 with the Link: tag in patch 11 and therefore get the wrong patch/commit association. Fix this problem by trying to match each commit based on the Subject before falling back to the fuzzier tracker-based matching. Reported-by: Nicolin Chen <nicolinc@nvidia.com> Signed-off-by: Will Deacon <will@kernel.org> --- src/b4/ty.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-)