gitmock

package module
v0.0.2 Latest Latest
Warning

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

Go to latest
Published: Aug 14, 2022 License: MIT Imports: 7 Imported by: 0

README

gitmock

Test Status codecov.io MIT License PkgGoDev

Description

Create mock git repository for testing.

Synopsis

gm, err := gitmock.New("")
if err != nil {
    log.Fatal(err)
}
defer os.RemoveAll(gm.RepoPath())
gm.Init() // shortcut of `gm.Do("init")
file := "hoge/fuga.txt"
gm.PutFile(file, "aaa\n")
gm.Add(file)
gm.Commit("-m", "initial commit")
out, stderr, err := gm.Status()

Author

Songmu

Documentation

Overview

Package gitmock provides utilities for creating mock git repository

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type GitMock

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

GitMock is git mock repository

func New

func New(gitPath string) (*GitMock, error)

New creates a new git mock repository. If gitPath is the empty string, `git` is used.

Example
package main

import (
	"fmt"
	"log"
	"os"
	"strings"

	"github.com/Songmu/gitmock"
)

func main() {
	gm, err := gitmock.New("")
	if err != nil {
		log.Fatal(err)
	}
	gm.Do("config", "--global", "init.defaultBranch", "main") // XXX

	defer os.RemoveAll(gm.RepoPath())
	gm.Init()
	file := "hoge/fuga.txt"
	gm.PutFile(file, "aaa\n")
	gm.Add(file)
	gm.Commit("-m", "initial commit")
	out, _, _ := gm.Status()
	if !strings.HasPrefix(out, "#") {
		out = "# " + out
	}
	fmt.Print(out)
}
Output:

# On branch main
nothing to commit, working tree clean

func (*GitMock) Add

func (gm *GitMock) Add(args ...string) (string, string, error)

Add Do git add

func (*GitMock) Branch

func (gm *GitMock) Branch(args ...string) (string, string, error)

Branch Do git branch

func (*GitMock) Checkout

func (gm *GitMock) Checkout(args ...string) (string, string, error)

Checkout Do git checkout

func (*GitMock) Clone

func (gm *GitMock) Clone(args ...string) (string, string, error)

Clone Do git clone

func (*GitMock) Commit

func (gm *GitMock) Commit(args ...string) (string, string, error)

Commit Do git commit

func (*GitMock) Diff

func (gm *GitMock) Diff(args ...string) (string, string, error)

Diff Do git diff

func (*GitMock) Do

func (gm *GitMock) Do(args ...string) (string, string, error)

Do the git command

func (*GitMock) Init

func (gm *GitMock) Init(args ...string) (string, string, error)

Init Do git init

func (*GitMock) Initialize

func (gm *GitMock) Initialize() (*GitMock, error)

Initialize the GitMock

func (*GitMock) Log

func (gm *GitMock) Log(args ...string) (string, string, error)

Log Do git log

func (*GitMock) LsFiles

func (gm *GitMock) LsFiles(args ...string) (string, string, error)

LsFiles Do git ls-files

func (*GitMock) Merge

func (gm *GitMock) Merge(args ...string) (string, string, error)

Merge Do git merge

func (*GitMock) Mv

func (gm *GitMock) Mv(args ...string) (string, string, error)

Mv Do git mv

func (*GitMock) PutFile

func (gm *GitMock) PutFile(file, content string) error

PutFile put a file to repo

func (*GitMock) Rebase

func (gm *GitMock) Rebase(args ...string) (string, string, error)

Rebase Do git rebase

func (*GitMock) RepoPath

func (gm *GitMock) RepoPath() string

RepoPath returns repository path

func (*GitMock) Reset

func (gm *GitMock) Reset(args ...string) (string, string, error)

Reset Do git reset

func (*GitMock) Rm

func (gm *GitMock) Rm(args ...string) (string, string, error)

Rm Do git rm

func (*GitMock) Show

func (gm *GitMock) Show(args ...string) (string, string, error)

Show Do git show

func (*GitMock) Status

func (gm *GitMock) Status(args ...string) (string, string, error)

Status Do git status

func (*GitMock) Tag

func (gm *GitMock) Tag(args ...string) (string, string, error)

Tag Do git tag

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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