Skip to content

Commit

Permalink
Merge pull request #789 from AriehSchneier/rewrite-blame
Browse files Browse the repository at this point in the history
plumbing: blame, Complete rewrite. Fixes #603
  • Loading branch information
pjbgf committed Jul 7, 2023
2 parents dd4e2b7 + e0fc8a8 commit 7e143ce
Show file tree
Hide file tree
Showing 7 changed files with 647 additions and 893 deletions.
48 changes: 48 additions & 0 deletions _examples/blame/main.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
package main

import (
"fmt"
"os"

"github.com/go-git/go-git/v5"
. "github.com/go-git/go-git/v5/_examples"
)

// Basic example of how to blame a repository.
func main() {
CheckArgs("<url>", "<file_to_blame>")
url := os.Args[1]
path := os.Args[2]

tmp, err := os.MkdirTemp("", "go-git-blame-*")
CheckIfError(err)

defer os.RemoveAll(tmp)

// Clone the given repository.
Info("git clone %s %s", url, tmp)
r, err := git.PlainClone(
tmp,
false,
&git.CloneOptions{
URL: url,
Tags: git.NoTags,
},
)
CheckIfError(err)

// Retrieve the branch's HEAD, to then get the HEAD commit.
ref, err := r.Head()
CheckIfError(err)

c, err := r.CommitObject(ref.Hash())
CheckIfError(err)

Info("git blame %s", path)

// Blame the given file/path.
br, err := git.Blame(c, path)
CheckIfError(err)

fmt.Printf("%s", br.String())
}

0 comments on commit 7e143ce

Please sign in to comment.