Skip to content

Commit 429fac5

Browse files
committed
Finish redirection mechanism
1 parent f40d075 commit 429fac5

File tree

4 files changed

+25
-21
lines changed

4 files changed

+25
-21
lines changed

modules/git/tree_blob_nogogit.go

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -26,23 +26,24 @@ func (t *Tree) GetTreeEntryByPath(relpath string) (*TreeEntry, error) {
2626
relpath = path.Clean(relpath)
2727
parts := strings.Split(relpath, "/")
2828
var err error
29+
2930
tree := t
30-
for i, name := range parts {
31-
if i == len(parts)-1 {
32-
entries, err := tree.ListEntries()
33-
if err != nil {
34-
return nil, err
35-
}
36-
for _, v := range entries {
37-
if v.Name() == name {
38-
return v, nil
39-
}
40-
}
41-
} else {
42-
tree, err = tree.SubTree(name)
43-
if err != nil {
44-
return nil, err
45-
}
31+
for _, name := range parts[:len(parts)-1] {
32+
tree, err = tree.SubTree(name)
33+
if err != nil {
34+
return nil, err
35+
}
36+
}
37+
38+
name := parts[len(parts)-1]
39+
entries, err := tree.ListEntries()
40+
if err != nil {
41+
return nil, err
42+
}
43+
for _, v := range entries {
44+
if v.Name() == name {
45+
v.fullName = relpath
46+
return v, nil
4647
}
4748
}
4849
return nil, ErrNotExist{"", relpath}

modules/git/tree_entry.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ func (te *TreeEntry) FollowLinks() (*TreeEntry, error) {
103103

104104
// TryFollowingLinks attempts to follow the symlinks of this entry to the origin
105105
// If that fails, it defaults to the entry itself
106-
func (te *TreeEntry) TryFollowingLinks() (*TreeEntry) {
106+
func (te *TreeEntry) TryFollowingLinks() *TreeEntry {
107107
newEntry, err := te.FollowLinks()
108108
if err != nil {
109109
return te

modules/git/tree_entry_nogogit.go

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,6 @@ type TreeEntry struct {
2323

2424
// Name returns the name of the entry
2525
func (te *TreeEntry) Name() string {
26-
if te.fullName != "" {
27-
return te.fullName
28-
}
2926
return te.name
3027
}
3128

@@ -58,6 +55,12 @@ func (te *TreeEntry) Size() int64 {
5855
te.sized = true
5956
return te.size
6057
}
58+
func (te *TreeEntry) FullPath() string {
59+
if te.fullName == "" {
60+
return te.Name()
61+
}
62+
return te.fullName
63+
}
6164

6265
// IsSubModule if the entry is a sub module
6366
func (te *TreeEntry) IsSubModule() bool {

templates/repo/view_list.tmpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@
7676
{{svg (printf "octicon-%s" (EntryIcon $entry))}}
7777
{{$symLinkEntry := $entry}}
7878
{{if $entry.IsLink}}{{$symLinkEntry = $entry.TryFollowingLinks}}{{end}}
79-
<a class="muted" href="{{$.TreeLink}}/{{$symLinkEntry.Name}}" data-tooltip-content title="{{$entry.Name}}">{{$entry.Name}}</a>
79+
<a class="muted" href="{{$.TreeLink}}/{{$symLinkEntry.FullPath}}" data-tooltip-content title="{{$symLinkEntry.FullPath}}">{{$entry.Name}}</a>
8080
{{end}}
8181
{{end}}
8282
</span>

0 commit comments

Comments
 (0)