Revisions that reference issues are duplicated if their repository is listed for a project and its subprojects
If you have a project with a configured SCM repository and it has a subproject with the same SCM repository configured (e.g., if you have a subproject for a specific category of work on the main project and they have the same repository specified in Redmine), then a revision in the SCM repository that references an issue by its number will be duplicated in the list of revisions referencing that issue.
The reason for this is that Changeset::scan_comment_for_issue_ids in app/models/changeset.rb does not check whether the changeset and issue belong to the same project, so the revision will end up being referenced to the issue once in the project that owns the issue and once in each other project that shares the SCM repository, even though they do not own the issue.
#1 Updated by Ari Johnson about 10 years ago
- File redmine_1.1-stable_r5503_fix_issue_8225.diff added
Here is a patch that resolves the problem. It makes one change in total, to line 128 of app/models/changeset.rb which, after applying this patch, will verify that the issue and changeset have the same project before adding the reference. It has been lightly tested in a working environment.
#4 Updated by Colin Mollenhour almost 10 years ago
The patch is flawed. If the subproject has a repo that is different from the parent project but the commit message in the subproject repo references an issue in the parent project (I do this all the time) then the issue would not be linked with your patch. It needs to instead truly check for duplicates rather than requiring exact issue-project-repo match. Or maybe it should be configurable, but I do agree the duplicate commit links are annoying.