Commit 50d81f2

Eric Bower  ·  2023-08-11 14:30:04 -0400 EDT
parent e93b271
fix: use commit for refs in url
1 files changed,  +19, -23
+19, -23
......@@ -283,7 +283,7 @@ func readmeFile(repo *Config) string {
283283 return strings.ToLower(repo.Readme)
284284 }
285285
286-func walkTree(tree *git.Tree, branch string, curpath string, aggregate []*TreeItem) []*TreeItem {
286+func walkTree(tree *git.Tree, commitID string, curpath string, aggregate []*TreeItem) []*TreeItem {
287287 entries, err := tree.Entries()
288288 bail(err)
289289
......@@ -292,7 +292,7 @@ func walkTree(tree *git.Tree, branch string, curpath string, aggregate []*TreeIt
292292 typ := entry.Type()
293293 if typ == git.ObjectTree {
294294 re, _ := tree.Subtree(entry.Name())
295- aggregate = walkTree(re, branch, fname, aggregate)
295+ aggregate = walkTree(re, commitID, fname, aggregate)
296296 }
297297
298298 if entry.Type() == git.ObjectBlob {
......@@ -300,7 +300,7 @@ func walkTree(tree *git.Tree, branch string, curpath string, aggregate []*TreeIt
300300 Size: toPretty(entry.Size()),
301301 Path: fname,
302302 Entry: entry,
303- URL: template.URL(filepath.Join("/", "tree", branch, "item", fname)),
303+ URL: template.URL(filepath.Join("/", "tree", commitID, "item", fname)),
304304 })
305305 }
306306 }
......@@ -415,7 +415,7 @@ func (c *Config) writeHTMLTreeFiles(pageData *PageData, tree []*TreeItem) string
415415 Contents: template.HTML(contents),
416416 Path: file.Path,
417417 },
418- Subdir: filepath.Join("tree", pageData.RevData.RevName, "item", d),
418+ Subdir: filepath.Join("tree", getShortID(pageData.RevData.ID), "item", d),
419419 })
420420 }
421421 return readme
......@@ -504,27 +504,22 @@ func (c *Config) writeLogDiffs(repo *git.Repository, pageData *PageData, logs []
504504 }
505505 }
506506
507-func (c *Config) getCloneURL() template.URL {
508- url := fmt.Sprintf("https://%s/%s.git", c.CloneURL, c.RepoName)
509- return template.URL(url)
510-}
511-
512-func (c *Config) getSummaryUrl() template.URL {
507+func (c *Config) getSummaryURL() template.URL {
513508 url := fmt.Sprintf("/%s/index.html", c.RepoName)
514509 return template.URL(url)
515510 }
516511
517-func (c *Config) getRefsUrl() template.URL {
512+func (c *Config) getRefsURL() template.URL {
518513 url := fmt.Sprintf("/%s/refs.html", c.RepoName)
519514 return template.URL(url)
520515 }
521516
522-func (c *Config) getTreeUrl(revn string) template.URL {
517+func (c *Config) getTreeURL(revn string) template.URL {
523518 url := fmt.Sprintf("/%s/tree/%s/index.html", c.RepoName, revn)
524519 return template.URL(url)
525520 }
526521
527-func (c *Config) getLogsUrl(revn string) template.URL {
522+func (c *Config) getLogsURL(revn string) template.URL {
528523 url := fmt.Sprintf("/%s/logs/%s/index.html", c.RepoName, revn)
529524 return template.URL(url)
530525 }
......@@ -538,8 +533,8 @@ func (c *Config) getURLs() *SiteURLs {
538533 return &SiteURLs{
539534 RootURL: c.HomeUrl,
540535 CloneURL: c.CloneURL,
541- RefsURL: c.getRefsUrl(),
542- SummaryURL: c.getSummaryUrl(),
536+ RefsURL: c.getRefsURL(),
537+ SummaryURL: c.getSummaryURL(),
543538 }
544539 }
545540
......@@ -572,8 +567,8 @@ func (c *Config) writeRepo() *BranchOutput {
572567 data := &RevData{
573568 ID: fullRevID,
574569 RevName: revName,
575- TreeURL: c.getTreeUrl(revName),
576- LogURL: c.getLogsUrl(revName),
570+ TreeURL: c.getTreeURL(revName),
571+ LogURL: c.getLogsURL(revName),
577572 }
578573 if first == nil {
579574 first = data
......@@ -643,8 +638,8 @@ func (c *Config) writeRepo() *BranchOutput {
643638 // use the first revision in our list to generate
644639 // the root summary, logs, and tree the user can click
645640 revData := &RevData{
646- TreeURL: c.getTreeUrl(first.RevName),
647- LogURL: c.getLogsUrl(first.RevName),
641+ TreeURL: c.getTreeURL(getShortID(first.ID)),
642+ LogURL: c.getLogsURL(getShortID(first.ID)),
648643 RevName: first.RevName,
649644 }
650645
......@@ -702,7 +697,7 @@ func (c *Config) writeRevision(repo *git.Repository, pageData *PageData, refs []
702697 bail(err)
703698
704699 entries := []*TreeItem{}
705- treeEntries := walkTree(tree, pageData.RevData.RevName, "", entries)
700+ treeEntries := walkTree(tree, getShortID(pageData.RevData.ID), "", entries)
706701 for _, entry := range treeEntries {
707702 entry.Path = strings.TrimPrefix(entry.Path, "/")
708703
......@@ -725,14 +720,15 @@ func (c *Config) writeRevision(repo *git.Repository, pageData *PageData, refs []
725720 entry.Summary = lc.Summary()
726721 entry.When = lc.Author.When.Format(time.RFC822)
727722 }
728- entry.URL = template.URL(filepath.Join(
723+ fpath := filepath.Join(
729724 "/",
730725 c.RepoName,
731726 "tree",
732- pageData.RevData.RevName,
727+ getShortID(pageData.RevData.ID),
733728 "item",
734729 fmt.Sprintf("%s.html", entry.Path),
735- ))
730+ )
731+ entry.URL = template.URL(fpath)
736732 }
737733
738734 c.Logger.Infof(