From edc40a578e8f12ff17e9ab3d7561f3445e086408 Mon Sep 17 00:00:00 2001 From: Alexey Terentyev Date: Fri, 17 Sep 2021 19:45:33 +0300 Subject: [PATCH 1/7] fixed bundle creation Signed-off-by: Alexey Terentyev --- modules/git/repo.go | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/modules/git/repo.go b/modules/git/repo.go index e7d42dacb165d..5a3d1b17d0095 100644 --- a/modules/git/repo.go +++ b/modules/git/repo.go @@ -425,18 +425,28 @@ func (repo *Repository) CreateBundle(ctx context.Context, commit string, out io. } defer os.RemoveAll(tmp) + branchName := "bundle-"+commit[:8] + if err := repo.CreateBranch(branchName, commit); err != nil { + return err + } + tmpFile := filepath.Join(tmp, "bundle") args := []string{ "bundle", "create", tmpFile, - commit, + branchName, } + _, err = NewCommandContext(ctx, args...).RunInDir(repo.Path) if err != nil { return err } + if err := repo.DeleteBranch(branchName, DeleteBranchOptions{Force: true}); err != nil { + return err + } + fi, err := os.Open(tmpFile) if err != nil { return err From fd92eb6b9655810c672ad4a3c358dd8b88100a80 Mon Sep 17 00:00:00 2001 From: Alexey Terentyev Date: Fri, 17 Sep 2021 20:03:56 +0300 Subject: [PATCH 2/7] fmt Signed-off-by: Alexey Terentyev --- modules/git/repo.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/git/repo.go b/modules/git/repo.go index 5a3d1b17d0095..538cf54b06898 100644 --- a/modules/git/repo.go +++ b/modules/git/repo.go @@ -425,7 +425,7 @@ func (repo *Repository) CreateBundle(ctx context.Context, commit string, out io. } defer os.RemoveAll(tmp) - branchName := "bundle-"+commit[:8] + branchName := "bundle-" + commit[:8] if err := repo.CreateBranch(branchName, commit); err != nil { return err } From eff54a78d41a4a8d9d0e09f8f70f5e2851b21157 Mon Sep 17 00:00:00 2001 From: Alexey Terentyev Date: Fri, 17 Sep 2021 20:58:34 +0300 Subject: [PATCH 3/7] correct transaction ending Signed-off-by: Alexey Terentyev --- services/archiver/archiver.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/services/archiver/archiver.go b/services/archiver/archiver.go index 7ae0a94d7ecac..045aa992b4e79 100644 --- a/services/archiver/archiver.go +++ b/services/archiver/archiver.go @@ -135,9 +135,11 @@ func doArchive(r *ArchiveRequest) (*models.RepoArchiver, error) { if err == nil { if archiver.Status == models.RepoArchiverGenerating { archiver.Status = models.RepoArchiverReady - return archiver, models.UpdateRepoArchiverStatus(ctx, archiver) + if err = models.UpdateRepoArchiverStatus(ctx, archiver); err != nil { + return nil, err + } } - return archiver, nil + return archiver, commiter.Commit() } if !errors.Is(err, os.ErrNotExist) { From 551d664dd00d3d8045459c04d7c6ccac5d253882 Mon Sep 17 00:00:00 2001 From: Alexey Terentyev Date: Sun, 19 Sep 2021 01:26:52 +0300 Subject: [PATCH 4/7] creating bundle from template repo Signed-off-by: Alexey Terentyev --- modules/git/repo.go | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/modules/git/repo.go b/modules/git/repo.go index 538cf54b06898..1dbdcd6f296d1 100644 --- a/modules/git/repo.go +++ b/modules/git/repo.go @@ -425,25 +425,21 @@ func (repo *Repository) CreateBundle(ctx context.Context, commit string, out io. } defer os.RemoveAll(tmp) - branchName := "bundle-" + commit[:8] - if err := repo.CreateBranch(branchName, commit); err != nil { + env := append(os.Environ(), "GIT_OBJECT_DIRECTORY="+filepath.Join(repo.Path, "objects")) + _, err = NewCommandContext(ctx, "init", "--bare").RunInDirWithEnv(tmp, env) + if err != nil { return err } - tmpFile := filepath.Join(tmp, "bundle") - args := []string{ - "bundle", - "create", - tmpFile, - branchName, - } - - _, err = NewCommandContext(ctx, args...).RunInDir(repo.Path) + branchName := "main" + _, err = NewCommandContext(ctx, "branch", branchName, commit).RunInDirWithEnv(tmp, env) if err != nil { return err } - if err := repo.DeleteBranch(branchName, DeleteBranchOptions{Force: true}); err != nil { + tmpFile := filepath.Join(tmp, "bundle") + _, err = NewCommandContext(ctx, "bundle", "create", tmpFile, branchName).RunInDirWithEnv(tmp, env) + if err != nil { return err } From 468409403120d2ac1652d886476c0ebb08fac79d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexey=20=E3=80=92erentyev?= Date: Tue, 21 Sep 2021 20:15:37 +0300 Subject: [PATCH 5/7] Update services/archiver/archiver.go Co-authored-by: Gwyneth Morgan <87623694+gwymor@users.noreply.github.com> --- services/archiver/archiver.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/archiver/archiver.go b/services/archiver/archiver.go index c4646f750626c..d602b9ed7fd5f 100644 --- a/services/archiver/archiver.go +++ b/services/archiver/archiver.go @@ -140,7 +140,7 @@ func doArchive(r *ArchiveRequest) (*models.RepoArchiver, error) { return nil, err } } - return archiver, commiter.Commit() + return archiver, committer.Commit() } if !errors.Is(err, os.ErrNotExist) { From 158f96ada0b002aee0f1f9ae67f077d37345bbc3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexey=20=E3=80=92erentyev?= Date: Wed, 22 Sep 2021 02:36:50 +0300 Subject: [PATCH 6/7] Update modules/git/repo.go Co-authored-by: Gwyneth Morgan --- modules/git/repo.go | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/modules/git/repo.go b/modules/git/repo.go index 1dbdcd6f296d1..b9b10004f3121 100644 --- a/modules/git/repo.go +++ b/modules/git/repo.go @@ -431,14 +431,13 @@ func (repo *Repository) CreateBundle(ctx context.Context, commit string, out io. return err } - branchName := "main" - _, err = NewCommandContext(ctx, "branch", branchName, commit).RunInDirWithEnv(tmp, env) + _, err = NewCommandContext(ctx, "reset", "--soft", commit).RunInDirWithEnv(tmp, env) if err != nil { return err } tmpFile := filepath.Join(tmp, "bundle") - _, err = NewCommandContext(ctx, "bundle", "create", tmpFile, branchName).RunInDirWithEnv(tmp, env) + _, err = NewCommandContext(ctx, "bundle", "create", tmpFile, "HEAD").RunInDirWithEnv(tmp, env) if err != nil { return err } From e837361306fe0f6cdce0e225f55be32a76461e73 Mon Sep 17 00:00:00 2001 From: Alexey Terentyev Date: Wed, 22 Sep 2021 02:42:13 +0300 Subject: [PATCH 7/7] added second ref for bundle Signed-off-by: Alexey Terentyev --- modules/git/repo.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/modules/git/repo.go b/modules/git/repo.go index b9b10004f3121..89af7aa9e1dad 100644 --- a/modules/git/repo.go +++ b/modules/git/repo.go @@ -436,8 +436,13 @@ func (repo *Repository) CreateBundle(ctx context.Context, commit string, out io. return err } + _, err = NewCommandContext(ctx, "branch", "-m", "bundle").RunInDirWithEnv(tmp, env) + if err != nil { + return err + } + tmpFile := filepath.Join(tmp, "bundle") - _, err = NewCommandContext(ctx, "bundle", "create", tmpFile, "HEAD").RunInDirWithEnv(tmp, env) + _, err = NewCommandContext(ctx, "bundle", "create", tmpFile, "bundle", "HEAD").RunInDirWithEnv(tmp, env) if err != nil { return err }