quarantine

package
v14.10.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 30, 2022 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Dir

type Dir struct {
	// contains filtered or unexported fields
}

Dir is a quarantine directory for Git objects. Instead of writing new commits into the main repository, they're instead written into a temporary quarantine directory. This staging area can either be migrated into the main repository or, alternatively, will automatically be discarded when the context gets cancelled. If the quarantine environment is discarded without being staged, then none of the objects which have been created in the quarantine directory will end up in the main repository.

func New

func New(ctx context.Context, repo *gitalypb.Repository, locator storage.Locator) (*Dir, error)

New creates a new quarantine directory and returns both the directory as well as its cleanup function.

func (*Dir) Migrate

func (d *Dir) Migrate() error

Migrate migrates all objects part of the quarantine directory into the main repository and thus makes them generally available. This implementation follows the git.git's `tmp_objdir_migrate()`.

func (*Dir) QuarantinedRepo

func (d *Dir) QuarantinedRepo() *gitalypb.Repository

QuarantinedRepo returns a Repository protobuf message with adjusted main and alternate object directories. If passed e.g. to the `git.ExecCommandFactory`, then all new objects will end up in the quarantine directory.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL