aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/code.gitea.io/git
diff options
context:
space:
mode:
authorSl@ny <webmaster@slany.work>2016-12-28 17:35:52 +0100
committerKim "BKC" Carlbäcker <kim.carlbacker@gmail.com>2016-12-28 18:09:52 +0100
commitc22f9114c7e0874e99fd1504131423517905c9c1 (patch)
treeed70854ca628597d961fbf44acf61f1c9f8e6f16 /vendor/code.gitea.io/git
parent331316894e391beb29fdebf9d8088973759bba1c (diff)
downloadgitea-c22f9114c7e0874e99fd1504131423517905c9c1.tar.gz
gitea-c22f9114c7e0874e99fd1504131423517905c9c1.zip
Implementation of Folder Jumping
Diffstat (limited to 'vendor/code.gitea.io/git')
-rw-r--r--vendor/code.gitea.io/git/tree_entry.go19
1 files changed, 19 insertions, 0 deletions
diff --git a/vendor/code.gitea.io/git/tree_entry.go b/vendor/code.gitea.io/git/tree_entry.go
index 1754316731..3f68d9868e 100644
--- a/vendor/code.gitea.io/git/tree_entry.go
+++ b/vendor/code.gitea.io/git/tree_entry.go
@@ -94,6 +94,25 @@ func (te *TreeEntry) Blob() *Blob {
}
}
+// GetSubJumpablePathName return the full path of subdirectory jumpable ( contains only one directory )
+func (te *TreeEntry) GetSubJumpablePathName() string {
+ if te.IsSubModule() || !te.IsDir() {
+ return ""
+ }
+ tree, err := te.ptree.SubTree(te.name)
+ if err != nil {
+ return te.name
+ }
+ entries, _ := tree.ListEntries()
+ if len(entries) == 1 && entries[0].IsDir() {
+ name := entries[0].GetSubJumpablePathName()
+ if name != "" {
+ return te.name + "/" + name
+ }
+ }
+ return te.name
+}
+
// Entries a list of entry
type Entries []*TreeEntry