|
@@ -12,8 +12,8 @@ import (
|
|
|
|
|
|
"github.com/sergi/go-diff/diffmatchpatch"
|
|
|
"gopkg.in/src-d/go-git.v4"
|
|
|
- "gopkg.in/src-d/go-git.v4/plumbing/difftree"
|
|
|
"gopkg.in/src-d/go-git.v4/plumbing/object"
|
|
|
+ "gopkg.in/src-d/go-git.v4/utils/merkletrie"
|
|
|
)
|
|
|
|
|
|
type Analyser struct {
|
|
@@ -58,8 +58,8 @@ func str(file *object.Blob) string {
|
|
|
}
|
|
|
|
|
|
func (analyser *Analyser) handleInsertion(
|
|
|
- change *difftree.Change, day int, status map[int]int64, files map[string]*File) {
|
|
|
- blob, err := analyser.Repository.Blob(change.To.TreeEntry.Hash)
|
|
|
+ change *object.Change, day int, status map[int]int64, files map[string]*File) {
|
|
|
+ blob, err := analyser.Repository.BlobObject(change.To.TreeEntry.Hash)
|
|
|
if err != nil {
|
|
|
panic(err)
|
|
|
}
|
|
@@ -77,8 +77,8 @@ func (analyser *Analyser) handleInsertion(
|
|
|
}
|
|
|
|
|
|
func (analyser *Analyser) handleDeletion(
|
|
|
- change *difftree.Change, day int, status map[int]int64, files map[string]*File) {
|
|
|
- blob, err := analyser.Repository.Blob(change.From.TreeEntry.Hash)
|
|
|
+ change *object.Change, day int, status map[int]int64, files map[string]*File) {
|
|
|
+ blob, err := analyser.Repository.BlobObject(change.From.TreeEntry.Hash)
|
|
|
if err != nil {
|
|
|
panic(err)
|
|
|
}
|
|
@@ -93,12 +93,12 @@ func (analyser *Analyser) handleDeletion(
|
|
|
}
|
|
|
|
|
|
func (analyser *Analyser) handleModification(
|
|
|
- change *difftree.Change, day int, status map[int]int64, files map[string]*File) {
|
|
|
- blob_from, err := analyser.Repository.Blob(change.From.TreeEntry.Hash)
|
|
|
+ change *object.Change, day int, status map[int]int64, files map[string]*File) {
|
|
|
+ blob_from, err := analyser.Repository.BlobObject(change.From.TreeEntry.Hash)
|
|
|
if err != nil {
|
|
|
panic(err)
|
|
|
}
|
|
|
- blob_to, err := analyser.Repository.Blob(change.To.TreeEntry.Hash)
|
|
|
+ blob_to, err := analyser.Repository.BlobObject(change.To.TreeEntry.Hash)
|
|
|
if err != nil {
|
|
|
panic(err)
|
|
|
}
|
|
@@ -206,7 +206,7 @@ func (analyser *Analyser) Commits() []*object.Commit {
|
|
|
if err != nil {
|
|
|
panic(err)
|
|
|
}
|
|
|
- commit, err := repository.Commit(head.Hash())
|
|
|
+ commit, err := repository.CommitObject(head.Hash())
|
|
|
if err != nil {
|
|
|
panic(err)
|
|
|
}
|
|
@@ -307,17 +307,21 @@ func (analyser *Analyser) Analyse(commits []*object.Commit) [][]int64 {
|
|
|
statuses = append(statuses, gs)
|
|
|
}
|
|
|
}
|
|
|
- tree_diff, err := difftree.DiffTree(prev_tree, tree)
|
|
|
+ tree_diff, err := object.DiffTree(prev_tree, tree)
|
|
|
if err != nil {
|
|
|
panic(err)
|
|
|
}
|
|
|
for _, change := range tree_diff {
|
|
|
- switch change.Action {
|
|
|
- case difftree.Insert:
|
|
|
+ action, err := change.Action()
|
|
|
+ if err != nil {
|
|
|
+ panic(err)
|
|
|
+ }
|
|
|
+ switch action {
|
|
|
+ case merkletrie.Insert:
|
|
|
analyser.handleInsertion(change, day, status, files)
|
|
|
- case difftree.Delete:
|
|
|
+ case merkletrie.Delete:
|
|
|
analyser.handleDeletion(change, day, status, files)
|
|
|
- case difftree.Modify:
|
|
|
+ case merkletrie.Modify:
|
|
|
func() {
|
|
|
defer func() {
|
|
|
r := recover()
|