Skip to content

Commit

Permalink
Merge branch 'na-Itms:master' into master
Browse files Browse the repository at this point in the history
  • Loading branch information
btlogy authored Oct 14, 2024
2 parents f013209 + b4d69ec commit 62711fb
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 0 deletions.
14 changes: 14 additions & 0 deletions importer/revisionMapper.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ var (
revisionRangeRegexp = regexp.MustCompile(`(^|[^\w]\s*)(r\d+)-(?:r)?(\d+)`)
revisionRegexp = regexp.MustCompile(`(^|[^\w]\s*)(r\d+)`)
changesetRegexp = regexp.MustCompile(`In (?:\[\d+\])?changeset:"?(\d+)"?:`)
bracketLinkRegexp = regexp.MustCompile(`\[(\d+)\]`)
)

func mapRevision(in string, revisionMap map[string]string) string {
Expand Down Expand Up @@ -56,6 +57,18 @@ func mapChangeset(in string, revisionMap map[string]string) string {
})
}

func mapBracketLink(in string, revisionMap map[string]string) string {
return bracketLinkRegexp.ReplaceAllStringFunc(in, func(match string) string {
svnRef := bracketLinkRegexp.ReplaceAllString(match, `r$1`)
if gitRef, found := revisionMap[svnRef]; found == true && gitRef != "" {
return gitRef
} else {
log.Warn("No matching commit for svn revision '%s'", svnRef)
}
return match
})
}

func MapRevisions(in string, revisionMap map[string]string) string {
if revisionMap == nil {
return in
Expand All @@ -64,6 +77,7 @@ func MapRevisions(in string, revisionMap map[string]string) string {
out := mapRevisionRange(in, revisionMap)
out = mapRevision(out, revisionMap)
out = mapChangeset(out, revisionMap)
out = mapBracketLink(out, revisionMap) // Must be done after mapChangeset which may include a bracketted number

return out
}
14 changes: 14 additions & 0 deletions importer/revisionMapper_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,20 @@ func TestMapRange(t *testing.T) {
}
}

func TestMapBrackettedCommit(t *testing.T) {
revisionMap := map[string]string{
"r4485": "deadf00d",
}
input := `In [4485]:`
expected := `In deadf00d:`

result := importer.MapRevisions(input, revisionMap)

if result != expected {
t.Errorf("Expected '%s' but got '%s'", expected, result)
}
}

func TestMapCommitReference(t *testing.T) {
revisionMap := map[string]string{
"r4485": "deadf00d",
Expand Down

0 comments on commit 62711fb

Please sign in to comment.