Help us shape the future of Go! Take the 2026 Go Developer Survey

git

package
v0.5.2 Latest Latest
Warning

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

Go to latest
Published: Dec 18, 2023 License: GPL-3.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// ColorDiffTrippleDash is the "file name before change", e.g:
	//	--- a/cmd/apply.go
	ColorDiffTrippleDash = color.New(color.FgHiRed, color.Italic)
	// ColorDiffTripplePlus is the "file name after change", e.g:
	//	+++ b/cmd/apply.go
	ColorDiffTripplePlus = color.New(color.FgHiGreen, color.Italic)
	// ColorDiffRemove is the removed lines, e.g:
	//	-	if !color.NoColor && cfg.Log.Format == config.LogFormatPretty {
	//	-		diff = colorizeDiff(diff)
	ColorDiffRemove = color.New(color.FgRed)
	// ColorDiffAdd is the added lines, e.g:
	//	+	if cfg.Log.Format == config.LogFormatPretty {
	//	+		diff = git.ColorizeDiff(diff)
	ColorDiffAdd = color.New(color.FgGreen)
	// ColorDiffDoubleAt is the double at-symbol (@) specifying section ranges, e.g:
	//	@@ -339,42 +338,12 @@ func logDiff(repo git.Repo) {
	ColorDiffDoubleAt = color.New(color.FgMagenta, color.Italic)
	// ColorDiffOtherNonSpace is the other Git info lines, i.e all other lines
	// that doesn't start with a space, e.g:
	//	diff --git a/cmd/apply.go b/cmd/apply.go
	//	index b4c2d30..a5f6e5f 100644
	ColorDiffOtherNonSpace = color.New(color.FgHiBlack, color.Italic)
)

Color settings for Git diffs.

Example diff:

diff --git a/cmd/apply.go b/cmd/apply.go
index b4c2d30..a5f6e5f 100644
--- a/cmd/apply.go
+++ b/cmd/apply.go
@@ -339,42 +338,12 @@ func logDiff(repo git.Repo) {
 		log.Warn().Err(err).Msg("Failed diffing changes. Trying to continue anyways.")
 		return
 	}
-	if !color.NoColor && cfg.Log.Format == config.LogFormatPretty {
-		diff = colorizeDiff(diff)
+	if cfg.Log.Format == config.LogFormatPretty {
+		diff = git.ColorizeDiff(diff)

Functions

func ColorizeDiff

func ColorizeDiff(diff string) string

Types

type Cmd

type Cmd struct {
	Credentials Credentials
	Committer   Committer
}

Cmd implements Git using the command-line version of Git.

func (Cmd) Clone

func (g Cmd) Clone(targetDir, remote string) (Repo, error)

type CmdRepo

type CmdRepo struct {
	Committer Committer
	// contains filtered or unexported fields
}

func (*CmdRepo) CheckoutNewBranch

func (r *CmdRepo) CheckoutNewBranch(branchName string) error

func (*CmdRepo) Close

func (r *CmdRepo) Close() error

func (*CmdRepo) CreateCommit

func (r *CmdRepo) CreateCommit(message string) (Commit, error)

func (*CmdRepo) CurrentBranch

func (r *CmdRepo) CurrentBranch() string

func (*CmdRepo) DiffChanges

func (r *CmdRepo) DiffChanges() (string, error)

func (*CmdRepo) DiffStaged added in v0.5.0

func (r *CmdRepo) DiffStaged() (string, error)

func (*CmdRepo) Directory

func (r *CmdRepo) Directory() string

func (*CmdRepo) MainBranch

func (r *CmdRepo) MainBranch() string

func (*CmdRepo) PushChanges

func (r *CmdRepo) PushChanges() error

func (*CmdRepo) StageChanges

func (r *CmdRepo) StageChanges() error

type Commit

type Commit struct {
	Hash           string
	AbbrHash       string
	ParentHash     string
	ParentAbbrHash string
	Subject        string
	Diff           string
}

func (Commit) String

func (c Commit) String() string

type Committer

type Committer struct {
	Name  string // maps to Git config user.name
	Email string // maps to Git config user.email
}

type Credentials

type Credentials struct {
	Username string
	Password string
}

type Git

type Git interface {
	Clone(targetDir, remote string) (Repo, error)
}

type Repo

type Repo interface {
	io.Closer
	Directory() string
	CurrentBranch() string
	MainBranch() string

	CheckoutNewBranch(branchName string) error
	DiffChanges() (string, error)
	DiffStaged() (string, error)
	StageChanges() error
	CreateCommit(message string) (Commit, error)
	PushChanges() error
}

func CloneTemp

func CloneTemp(g Git, tmpDirPattern, remote string) (Repo, error)

Jump to

Keyboard shortcuts

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