Revert "Update for TestScript to Reduce RepoSize"

This reverts commit 08c65ffb17.
This commit is contained in:
DmitryFrolovTri
2023-05-24 03:09:32 +00:00
parent 7bc95545ec
commit 22bb76c9c6
4 changed files with 6 additions and 105 deletions
-20
View File
@@ -332,26 +332,6 @@ func UpdateRepoSize(ctx context.Context, repo *repo_model.Repository) error {
return fmt.Errorf("updateSize: GetLFSMetaObjects: %w", err)
}
if setting.EnableSizeLimit && repo.GetActualSizeLimit() > 0 && size+lfsSize > repo.GetActualSizeLimit() {
// return fmt.Errorf("updateSize: Git Reflog Failed Size(%d) > Limit(%d)", size+lfsSize, repo.GetActualSizeLimit())
_, _, err = git.NewCommand(git.DefaultContext, "reflog", "expire", "--expire-unreachable=all", "--all").RunStdString(&git.RunOpts{Dir: repo.RepoPath()}) // Push
if err != nil {
return fmt.Errorf("updateSize: Git Reflog Failed: %w", err)
}
_, _, err = git.NewCommand(git.DefaultContext, "gc", "--prune=now").RunStdString(&git.RunOpts{Dir: repo.RepoPath()}) // Push
if err != nil {
return fmt.Errorf("updateSize: Git GC Failed: %w", err)
}
size, err = getDirectorySize(repo.RepoPath())
if err != nil {
return fmt.Errorf("updateSize: %w", err)
}
// return fmt.Errorf("updateSize: Git Reflog Failed Size(%d) > Limit(%d)", size+lfsSize, repo.GetActualSizeLimit())
}
return repo_model.UpdateRepoSize(ctx, repo.ID, size+lfsSize)
}
+1 -1
View File
@@ -263,7 +263,7 @@ func HookPreReceive(ctx *gitea_context.PrivateContext) {
if (addedSize > removedSize) && isRepoOversized {
log.Warn("Forbidden: new repo size %s is over limitation of %s. Push size: %s. Took %s seconds.", base.FileSize(addedSize-removedSize), base.FileSize(repo.GetActualSizeLimit()), base.FileSize(pushSize.Size), duration)
ctx.JSON(http.StatusForbidden, private.Response{
UserMsg: fmt.Sprintf("Repository size is over limitation of %s addedSize(%d) removedSize(%d) repo(%s)", base.FileSize(repo.GetActualSizeLimit()), addedSize, removedSize, repo.RepoPath()),
UserMsg: fmt.Sprintf("Repository size is over limitation of %s", base.FileSize(repo.GetActualSizeLimit())),
})
return
}
+3 -7
View File
@@ -93,9 +93,9 @@ func pushUpdates(optsList []*repo_module.PushUpdateOptions) error {
}
defer gitRepo.Close()
// if err = repo_module.UpdateRepoSize(ctx, repo); err != nil {
// log.Error("Failed to update size for repository: %v", err)
// }
if err = repo_module.UpdateRepoSize(ctx, repo); err != nil {
log.Error("Failed to update size for repository: %v", err)
}
addTags := make([]string, 0, len(optsList))
delTags := make([]string, 0, len(optsList))
@@ -293,10 +293,6 @@ func pushUpdates(optsList []*repo_module.PushUpdateOptions) error {
return fmt.Errorf("UpdateRepositoryUpdatedTime: %w", err)
}
if err = repo_module.UpdateRepoSize(ctx, repo); err != nil {
log.Error("Failed to update size for repository: %v", err)
}
return nil
}
+2 -77
View File
@@ -35,7 +35,7 @@ import (
)
const (
littleSize = 1024 * 10 // 1ko
littleSize = 1024 // 1ko
bigSize = 128 * 1024 * 1024 // 128Mo
)
@@ -60,8 +60,7 @@ func testGit(t *testing.T, u *url.URL) {
dstPath := t.TempDir()
// dstForkedPath := t.TempDir()
dstForkedPath4Reduce := t.TempDir()
dstForkedPath := t.TempDir()
t.Run("CreateRepoInDifferentUser", doAPICreateRepository(forkedUserCtx, false))
t.Run("AddUserAsCollaborator", doAPIAddCollaborator(forkedUserCtx, httpContext.Username, perm.AccessModeRead))
@@ -105,38 +104,6 @@ func testGit(t *testing.T, u *url.URL) {
defer tests.PrintCurrentTest(t)()
// TODO doDeleteCommitAndPush(t, littleSize, dstPath, "data-file-")
})
t.Run("ReduceRepoSize", func(t *testing.T) {
defer tests.PrintCurrentTest(t)()
u.Path = forkedUserCtx.GitPath()
u.User = url.UserPassword(forkedUserCtx.Username, userPassword)
t.Run("Clone", doGitClone(dstForkedPath4Reduce, u))
fmt.Fprintf(os.Stdout, "dstForkedPath4Reduce = %s\n", dstForkedPath4Reduce)
doCommitAndPush(t, littleSize, dstForkedPath4Reduce, "data-file-")
bigOne := doCommitAndPush(t, bigSize, dstForkedPath4Reduce, "my-file-")
repo, err := repo_model.GetRepositoryByOwnerAndName(db.DefaultContext, forkedUserCtx.Username, forkedUserCtx.Reponame)
assert.NoError(t, err)
orgGitRepoSize := repo.Size //doGetCountObjects(t, dstForkedPath4Reduce)
fmt.Fprintf(os.Stdout, "Original GitSize = %d\n", orgGitRepoSize)
t.Run("APISetRepoSizeLimit", doAPISetRepoSizeLimit(forkedUserCtx, forkedUserCtx.Username, forkedUserCtx.Reponame, bigSize/2))
fmt.Fprintf(os.Stdout, "Original GitSize = %d\n", orgGitRepoSize)
//Delete Object from Oversized Repository, This should be Accepdted
doDeleteObjectAndClean(t, dstForkedPath4Reduce, bigOne)
repo, err = repo_model.GetRepositoryByOwnerAndName(db.DefaultContext, forkedUserCtx.Username, forkedUserCtx.Reponame)
assert.NoError(t, err)
reducedGitRepoSize := repo.Size //doGetCountObjects(t, dstForkedPath4Reduce)
fmt.Fprintf(os.Stdout, "Reduced GitSize = %d\n", reducedGitRepoSize)
assert.Less(t, reducedGitRepoSize, orgGitRepoSize, "Repo size is not reduced.")
setting.SaveGlobalRepositorySetting(false, 0)
})
// TODO delete branch
// TODO delete tag
// TODO add big commit that will be over with the push
@@ -358,20 +325,6 @@ func lockFileTest(t *testing.T, filename, repoPath string) {
assert.NoError(t, err)
}
func doDeleteObjectAndClean(t *testing.T, repoPath, filename string) {
var err error
err = deleteCommit(repoPath, "user4@example.com", "User Four", filename)
assert.NoError(t, err)
_, _, err = git.NewCommand(git.DefaultContext, "push", "origin", "master").RunStdString(&git.RunOpts{Dir: repoPath}) // Push
assert.NoError(t, err)
// _, _, err = git.NewCommand(git.DefaultContext, "reflog", "expire", "--expire-unreachable=all", "--all").RunStdString(&git.RunOpts{Dir: repoPath}) // Push
// assert.NoError(t, err)
// _, _, err = git.NewCommand(git.DefaultContext, "gc", "--prune=now").RunStdString(&git.RunOpts{Dir: repoPath}) // Push
// assert.NoError(t, err)
}
func doCommitAndPush(t *testing.T, size int, repoPath, prefix string) string {
name, err := generateCommitWithNewData(size, repoPath, "user2@example.com", "User Two", prefix)
assert.NoError(t, err)
@@ -388,34 +341,6 @@ func doCommitAndPushWithExpectedError(t *testing.T, size int, repoPath, prefix s
return name
}
func deleteCommit(repoPath, email, fullName, filename string) error {
var err error
globalArgs := git.AllowLFSFiltersArgs()
cmd := git.NewCommand(git.DefaultContext, "rm").AddDashesAndList(filename)
_, _, err = cmd.RunStdString(&git.RunOpts{Dir: repoPath}) // Push
if err != nil {
return err
}
return git.CommitChangesWithArgs(repoPath, globalArgs, git.CommitChangesOptions{
Committer: &git.Signature{
Email: email,
Name: fullName,
When: time.Now(),
},
Author: &git.Signature{
Email: email,
Name: fullName,
When: time.Now(),
},
Message: fmt.Sprintf("Testing commit @ %v", time.Now()),
})
}
func generateCommitWithNewData(size int, repoPath, email, fullName, prefix string) (string, error) {
// Generate random file
bufSize := 4 * 1024