Skip to content

Split lfs size from repository size #22900

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 41 commits into from
Jun 28, 2023
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
b149388
split lfs size from repository size
a1012112796 Feb 14, 2023
63fe364
fix lint
a1012112796 Feb 14, 2023
3df76e7
apply suggestions from code review
a1012112796 Feb 14, 2023
997ce53
adapt return type in `Add` helper function
a1012112796 Feb 14, 2023
292922d
Apply suggestions from code review
a1012112796 Feb 15, 2023
1dfd604
Merge branch 'main' into zzc/dev/split_lfs_size
a1012112796 Feb 15, 2023
a5fb15e
fix lint
a1012112796 Feb 15, 2023
ede9146
Merge branch 'main' into zzc/dev/split_lfs_size
a1012112796 Feb 17, 2023
0c047b3
use repo size detail
a1012112796 Feb 17, 2023
65b7183
revert changs about add
a1012112796 Feb 17, 2023
fb47f0c
rename
a1012112796 Feb 18, 2023
3226830
Merge branch 'main' into zzc/dev/split_lfs_size
a1012112796 Feb 18, 2023
07c2b97
Merge branch 'main' into zzc/dev/split_lfs_size
a1012112796 Feb 25, 2023
d747c1c
change data struct
a1012112796 Feb 25, 2023
383ef59
fix nit
a1012112796 Feb 25, 2023
84236f2
Merge branch 'main' into zzc/dev/split_lfs_size
a1012112796 Feb 28, 2023
8123c6d
Merge branch 'main' into zzc/dev/split_lfs_size
a1012112796 Jun 14, 2023
17b30a5
Merge remote-tracking branch 'upstream/main' into zzc/dev/split_lfs_s…
DmitryFrolovTri Jun 14, 2023
0564958
fix ui
a1012112796 Jun 14, 2023
291e1cd
Merge branch 'main' into zzc/dev/split_lfs_size
a1012112796 Jun 14, 2023
9fd948a
Merge remote-tracking branch 'upstreamlfssize/zzc/dev/split_lfs_size'…
DmitryFrolovTri Jun 15, 2023
f1ede76
Moved tool tip to the center of the number in the repo settings screen
DmitryFrolovTri Jun 16, 2023
52f7d08
Added function to return struct of sizes
DmitryFrolovTri Jun 16, 2023
7b46b63
added constants to represent text names
DmitryFrolovTri Jun 16, 2023
ad93fee
Merge pull request #8 from DmitryFrolovTri/zzc/dev/split_lfs_size_jun…
a1012112796 Jun 16, 2023
c5cf758
split the size in the administrative section repository list
DmitryFrolovTri Jun 16, 2023
d9e2d44
Merge pull request #9 from DmitryFrolovTri/zzc/dev/split_lfs_size_jun…
a1012112796 Jun 16, 2023
753fd1b
Merge remote-tracking branch 'origin/main' into zzc/dev/split_lfs_size
a1012112796 Jun 16, 2023
34bbe1e
fix sort
a1012112796 Jun 16, 2023
8e64230
Merge branch 'main' into zzc/dev/split_lfs_size
a1012112796 Jun 17, 2023
8266317
rename
a1012112796 Jun 17, 2023
8f3be38
Apply suggestions from code review
a1012112796 Jun 19, 2023
0366eff
Merge remote-tracking branch 'origin/main' into zzc/dev/split_lfs_size
a1012112796 Jun 20, 2023
844af9a
update migration
a1012112796 Jun 20, 2023
53c7e2e
Merge branch 'main' into zzc/dev/split_lfs_size
a1012112796 Jun 25, 2023
651dbfd
Merge branch 'main' into zzc/dev/split_lfs_size
a1012112796 Jun 25, 2023
2cc9bf3
Merge remote-tracking branch 'upstream/main' into zzc/dev/split_lfs_s…
DmitryFrolovTri Jun 28, 2023
1a63a59
Merge pull request #12 from DmitryFrolovTri/zzc/dev/split_lfs_size_ju…
a1012112796 Jun 28, 2023
f077e0a
Merge branch 'main' into zzc/dev/split_lfs_size
GiteaBot Jun 28, 2023
8659688
Merge branch 'main' into zzc/dev/split_lfs_size
GiteaBot Jun 28, 2023
4d51de1
Merge branch 'main' into zzc/dev/split_lfs_size
GiteaBot Jun 28, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions models/migrations/migrations.go
Original file line number Diff line number Diff line change
Expand Up @@ -457,6 +457,8 @@ var migrations = []Migration{
NewMigration("Add actions tables", v1_19.AddActionsTables),
// v241 -> v242
NewMigration("Add card_type column to project table", v1_19.AddCardTypeToProjectTable),
// v242 -> v243
NewMigration("Add lfs_size column to repository table", v1_19.AddLFSSizeToRepositoryTable),
}

// GetCurrentDBVersion returns the current db version
Expand Down
17 changes: 17 additions & 0 deletions models/migrations/v1_19/v242.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
// Copyright 2023 The Gitea Authors. All rights reserved.
// SPDX-License-Identifier: MIT

package v1_19 //nolint

import (
"xorm.io/xorm"
)

// AddLFSSizeToRepositoryTable: add LFSSize column to Repository
func AddLFSSizeToRepositoryTable(x *xorm.Engine) error {
type Repository struct {
LFSSize int64 `xorm:"NOT NULL DEFAULT 0"`
}

return x.Sync2(new(Repository))
}
1 change: 1 addition & 0 deletions models/repo/repo.go
Original file line number Diff line number Diff line change
Expand Up @@ -163,6 +163,7 @@ type Repository struct {
IsTemplate bool `xorm:"INDEX NOT NULL DEFAULT false"`
TemplateID int64 `xorm:"INDEX"`
Size int64 `xorm:"NOT NULL DEFAULT 0"`
LFSSize int64 `xorm:"NOT NULL DEFAULT 0"`
CodeIndexerStatus *RepoIndexerStatus `xorm:"-"`
StatsIndexerStatus *RepoIndexerStatus `xorm:"-"`
IsFsckEnabled bool `xorm:"NOT NULL DEFAULT true"`
Expand Down
7 changes: 4 additions & 3 deletions models/repo/update.go
Original file line number Diff line number Diff line change
Expand Up @@ -185,9 +185,10 @@ func ChangeRepositoryName(doer *user_model.User, repo *Repository, newRepoName s
}

// UpdateRepoSize updates the repository size, calculating it using getDirectorySize
func UpdateRepoSize(ctx context.Context, repoID, size int64) error {
_, err := db.GetEngine(ctx).ID(repoID).Cols("size").NoAutoTime().Update(&Repository{
Size: size,
func UpdateRepoSize(ctx context.Context, repoID, size, lfsSize int64) error {
_, err := db.GetEngine(ctx).ID(repoID).Cols("size", "lfs_size").NoAutoTime().Update(&Repository{
Size: size,
LFSSize: lfsSize,
})
return err
}
2 changes: 1 addition & 1 deletion modules/repository/create.go
Original file line number Diff line number Diff line change
Expand Up @@ -330,7 +330,7 @@ func UpdateRepoSize(ctx context.Context, repo *repo_model.Repository) error {
return fmt.Errorf("updateSize: GetLFSMetaObjects: %w", err)
}

return repo_model.UpdateRepoSize(ctx, repo.ID, size+lfsSize)
return repo_model.UpdateRepoSize(ctx, repo.ID, size, lfsSize)
}

// CheckDaemonExportOK creates/removes git-daemon-export-ok for git-daemon...
Expand Down
26 changes: 23 additions & 3 deletions modules/templates/helper.go
Original file line number Diff line number Diff line change
Expand Up @@ -120,11 +120,31 @@ func NewFuncMap() []template.FuncMap {
"Subtract": base.Subtract,
"EntryIcon": base.EntryIcon,
"MigrationIcon": MigrationIcon,
"Add": func(a ...int) int {
sum := 0
"Add": func(a ...interface{}) interface{} {
sum := int64(0)

for _, val := range a {
sum += val
switch v := val.(type) {
case int:
sum += int64(v)
case int32:
sum += int64(v)
case int64:
sum += v
default:
return -1
}
}

if len(a) > 0 {
switch a[0].(type) {
case int:
return int(sum)
case int32:
return int32(sum)
}
}

return sum
},
"Mul": func(a ...int) int {
Expand Down
2 changes: 1 addition & 1 deletion services/convert/repository.go
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,7 @@ func innerToRepo(ctx context.Context, repo *repo_model.Repository, mode perm.Acc
Template: repo.IsTemplate,
Empty: repo.IsEmpty,
Archived: repo.IsArchived,
Size: int(repo.Size / 1024),
Size: int((repo.Size + repo.LFSSize) / 1024),
Fork: repo.IsFork,
Parent: parent,
Mirror: repo.IsMirror,
Expand Down
4 changes: 2 additions & 2 deletions templates/repo/settings/options.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@
<label for="repo_name">{{.locale.Tr "repo.repo_name"}}</label>
<input id="repo_name" name="repo_name" value="{{.Repository.Name}}" data-repo-name="{{.Repository.Name}}" autofocus required>
</div>
<div class="inline field">
<div class="inline field" {{if not (eq .Repository.LFSSize 0)}}title="git: {{FileSize .Repository.Size}}, lfs: {{FileSize .Repository.LFSSize}}"{{end}}>
<label>{{.locale.Tr "repo.repo_size"}}</label>
<span>{{FileSize .Repository.Size}}</span>
<span>{{FileSize (Add .Repository.Size .Repository.LFSSize)}}</span>
</div>
<div class="inline field">
<label>{{.locale.Tr "repo.template"}}</label>
Expand Down
5 changes: 4 additions & 1 deletion templates/repo/sub_menu.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,10 @@
</div>
{{end}}
<div class="item">
<span class="ui">{{svg "octicon-database"}} <b>{{FileSize .Repository.Size}}</b></span>
<span class="ui" {{if not (eq .Repository.LFSSize 0)}}title="git: {{FileSize .Repository.Size}}, lfs: {{FileSize .Repository.LFSSize}}"{{end}}>
{{svg "octicon-database"}}
<b>{{FileSize (Add .Repository.Size .Repository.LFSSize)}}</b>
</span>
</div>
{{end}}
</div>
Expand Down
4 changes: 3 additions & 1 deletion templates/user/settings/repos.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,9 @@
<span class="icon">{{svg "octicon-repo"}}</span>
{{end}}
<a class="name" href="{{$repo.Link}}">{{$repo.OwnerName}}/{{$repo.Name}}</a>
<span>{{FileSize $repo.Size}}</span>
<span {{if not (eq $repo.LFSSize 0)}}title="git: {{FileSize $repo.Size}}, lfs: {{FileSize $repo.LFSSize}}"{{end}}>
{{FileSize (Add $repo.Size $repo.LFSSize)}}
</span>
{{if $repo.IsFork}}
{{$.locale.Tr "repo.forked_from"}}
<span><a href="{{$repo.BaseRepo.Link}}">{{$repo.BaseRepo.OwnerName}}/{{$repo.BaseRepo.Name}}</a></span>
Expand Down