37 lines
1.1 KiB
Diff
37 lines
1.1 KiB
Diff
--- 9.0.3 2024-12-12 08:06:13.000000000 +0100
|
|
+++ aneksajo 2024-12-16 08:23:15.000000000 +0100
|
|
@@ -9,6 +9,7 @@
|
|
"time"
|
|
|
|
git_model "code.gitea.io/gitea/models/git"
|
|
+ "code.gitea.io/gitea/modules/annex"
|
|
"code.gitea.io/gitea/modules/git"
|
|
"code.gitea.io/gitea/modules/httpcache"
|
|
"code.gitea.io/gitea/modules/lfs"
|
|
@@ -79,6 +80,26 @@
|
|
}
|
|
closed = true
|
|
|
|
+ // check for git-annex files
|
|
+ // (this code is weirdly redundant because I'm trying not to delete any lines in order to make merges easier)
|
|
+ isAnnexed, err := annex.IsAnnexed(blob)
|
|
+ if err != nil {
|
|
+ ctx.ServerError("annex.IsAnnexed", err)
|
|
+ return err
|
|
+ }
|
|
+ if isAnnexed {
|
|
+ content, err := annex.Content(blob)
|
|
+ if err != nil {
|
|
+ // XXX are there any other possible failure cases here?
|
|
+ // there are, there could be unrelated io errors; those should be ctx.ServerError()s
|
|
+ ctx.NotFound("annex.Content", err)
|
|
+ return err
|
|
+ }
|
|
+ defer content.Close()
|
|
+ common.ServeContentByReadSeeker(ctx.Base, ctx.Repo.TreePath, lastModified, content)
|
|
+ return nil
|
|
+ }
|
|
+
|
|
return common.ServeBlob(ctx.Base, ctx.Repo.TreePath, blob, lastModified)
|
|
}
|
|
|