diff --git a/models/git_diff.go b/models/git_diff.go index f89320087..33a63295f 100644 --- a/models/git_diff.go +++ b/models/git_diff.go @@ -160,6 +160,7 @@ type DiffFile struct { IsDeleted bool IsBin bool IsRenamed bool + IsSubmodule bool Sections []*DiffSection IsIncomplete bool } @@ -306,7 +307,7 @@ func ParsePatch(maxLines, maxLineCharacteres, maxFiles int, reader io.Reader) (* } curFileLinesCount = 0 - // Check file diff type. + // Check file diff type and is submodule. for { line, err := input.ReadString('\n') if err != nil { @@ -333,6 +334,9 @@ func ParsePatch(maxLines, maxLineCharacteres, maxFiles int, reader io.Reader) (* curFile.Name = b } if curFile.Type > 0 { + if strings.HasSuffix(line, " 160000\n") { + curFile.IsSubmodule = true + } break } } diff --git a/templates/repo/diff_box.tmpl b/templates/repo/diff_box.tmpl index a0565e6c8..76a414d23 100644 --- a/templates/repo/diff_box.tmpl +++ b/templates/repo/diff_box.tmpl @@ -68,13 +68,15 @@ {{end}} {{if $file.IsRenamed}}{{$file.OldName}} → {{end}}{{$file.Name}} -