Documentation
¶
Index ¶
Constants ¶
const Version = "0.1.2"
Version is the version of restack currently being used.
Note that semantic versioning in this repository applies to the `restack` executable, not to its library components. These APIs may break at any time without warning.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type FS ¶
type FS interface {
// Returns true if a file exists at the provided path.
FileExists(path string) bool
// MkdirAll creates a directory at the provided path and any needed parent
// directories.
//
// See os.MkdirAll.
MkdirAll(path string) error
// Starts reading the file at the provided path.
//
// See os.Open.
ReadFile(path string) (io.ReadCloser, error)
// Starts writing to the file at the given path, truncating it if it
// already exists.
//
// See os.Create.
WriteFile(path string) (io.WriteCloser, error)
// Start writing to the file at the given path, truncating it if it
// already exists. The file will be created with permissions 0755.
//
// See os.OpenFile.
WriteExecutableFile(path string) (io.WriteCloser, error)
// Renames old to new.
//
// See os.Rename.
Rename(old, new string) error
// Creates a temporary directory somewhere on the system and returns an
// absolute path to it.
//
// It's the caller's responsibility to clean this directory up.
TempDir(prefix string) (string, error)
// RemoveAll removes the file/directory at the given path and if it's a
// directory, all its descendants.
//
// See os.RemoveAll.
RemoveAll(path string) error
}
FS provides access to the filesystem.
var DefaultFilesystem FS = defaultFS{}
DefaultFilesystem is the real underlying filesystem.
type Git ¶
type Git interface {
// Changes the global configuration for the given key.
//
// Equivalent to,
//
// git config --global $name $value
SetGlobalConfig(ctx context.Context, name, value string) error
// Returns a mapping from abbreviated hash to list of refs at that hash.
ListHeads(ctx context.Context) (map[string][]string, error)
// RebaseHeadName returns the name of the branch being rebased or an empty
// string if we're not in the middle of a rebase.
RebaseHeadName(ctx context.Context) (string, error)
}
Git provides access to git commands.
type Restacker ¶
type Restacker struct {
// Name of the git remote. If set, an opt-in section that pushes restacked
// branches to this remote will also be generated.
//
// This field is optional.
RemoteName string
// Controls access to Git commands.
//
// This field is required.
Git Git
}
Restacker reads the todo list of an interactive rebase and writes a new version of it with the provided configuration.
type SystemGit ¶
type SystemGit struct {
// contains filtered or unexported fields
}
SystemGit uses the global `git` command to perform git operations.
func NewSystemGit ¶
NewSystemGit builds a new SystemGit.
The provides FS is used for file-system operations.
func (*SystemGit) RebaseHeadName ¶
RebaseHeadName implements Git.RebaseHeadName.