Defect #13544
Commit reference: autogenerated issue note has wrong commit link syntax in multi-repo or cross-project context
Status: | Closed | Start date: | ||
---|---|---|---|---|
Priority: | Normal | Due date: | ||
Assignee: | % Done: | 0% | ||
Category: | SCM | |||
Target version: | 2.4.3 | |||
Resolution: | Fixed | Affected version: | 2.2.3 |
Description
Redmine 2.2.3, multi project, multi repo per project.
If I do:
git commit -am "bla... refs #123456"
open issue #123456 in browser. The added note reads:
Applied in changeset somerepo|commit:aa101cb4a8
In order to become a link, it should be
Applied in changeset commit:somerepo|aa101cb4a8
instead.
For cross project links, the generated note is:
Applied in changeset someproj:somerepo|commit:aa101cb4a8
should be
Applied in changeset someproj:commit:somerepo|commit:aa101cb4a8
Related issues
Associated revisions
Fixed Changeset#text_tag for changeset with hash and repository identifier (#13544).
History
#1
Updated by Omar Kohl over 7 years ago
- File 13544.patch
added
+1
I can confirm this on version 2.3.1. Attached is a patch that fixes the issue.
#2
Updated by Jan Niggemann (redmine.org team member) over 7 years ago
- Related to Patch #14476: Fix for Issue #13544 added
#3
Updated by Omar Kohl over 7 years ago
This issue is still open in 2.3.3.
The correct syntax for commit links is as follows: (see http://www.redmine.org/help/wiki_syntax_detailed.html)
- Changesets:
- r758 (link to a changeset)
- commit:c6f4d0fd (link to a changeset with a non-numeric hash)
- svn1|r758 (link to a changeset of a specific repository, for projects with multiple repositories)
- commit:hg|c6f4d0fd (link to a changeset with a non-numeric hash of a specific repository)
- sandbox:r758 (link to a changeset of another project)
- sandbox:commit:c6f4d0fd (link to a changeset with a non-numeric hash of another project)
The current code in app/models/changeset.rb generates links such as:
- hg|commit:c6f4d0fd instead of commit:hg|c6f4d0fd
# Current Code
def text_tag(ref_project=nil)
tag = if scmid?
"commit:#{scmid}"
else
"r#{revision}"
end
if repository && repository.identifier.present?
tag = "#{repository.identifier}|#{tag}"
end
if ref_project && project && ref_project != project
tag = "#{project.identifier}:#{tag}"
end
tag
end
My fix:
diff --git a/app/models/changeset.rb b/app/models/changeset.rb index d3fa8ab..1951703 100644 --- a/app/models/changeset.rb +++ b/app/models/changeset.rb @@ -157,7 +157,11 @@ class Changeset < ActiveRecord::Base "r#{revision}" end if repository && repository.identifier.present? - tag = "#{repository.identifier}|#{tag}" + if scmid? + tag = "commit:#{repository.identifier}|#{scmid}" + else + tag = "#{repository.identifier}|#{tag}" + end end if ref_project && project && ref_project != project tag = "#{project.identifier}:#{tag}"
It is a nuisance to fix this every time I update Redmine. Could maybe someone with Commit-Access to Redmine have a look at this?
#4
Updated by Jean-Philippe Lang about 7 years ago
- Status changed from New to Resolved
- Assignee set to Jean-Philippe Lang
- Target version set to 2.4.3
- Resolution set to Fixed
Fixed in r12660.
#6
Updated by Toshi MARUYAMA almost 7 years ago
- Duplicated by Defect #16017: fixing keywords failed to link to repository with identifier added
#7
Updated by Toshi MARUYAMA almost 7 years ago
- Duplicated by Defect #14405: Alternate repo commit: link wrong when automatically added from a commit message added
#8
Updated by Toshi MARUYAMA over 5 years ago
- Duplicated by Defect #12685: Commit message generates invalid link when repository has an identifier added
#9
Updated by Toshi MARUYAMA over 5 years ago
- Duplicated by Defect #13036: auto generated comment "Applied in changeset xxx" is not link to commit added