diff options
-rw-r--r-- | blame.go | 15 | ||||
-rw-r--r-- | references.go | 3 | ||||
-rw-r--r-- | remote.go | 4 |
3 files changed, 14 insertions, 8 deletions
@@ -13,13 +13,13 @@ import ( "srcd.works/go-git.v4/utils/diff" ) -// BlameResult represents the result of a Blame operation +// BlameResult represents the result of a Blame operation. type BlameResult struct { - // Path is the path of the File that we're blaming + // Path is the path of the File that we're blaming. Path string - // Rev is the hash of the specified Commit used to generate this result + // Rev (Revision) is the hash of the specified Commit used to generate this result. Rev plumbing.Hash - // Lines contains every line with its authorship + // Lines contains every line with its authorship. Lines []*Line } @@ -82,6 +82,11 @@ func Blame(c *object.Commit, path string) (*BlameResult, error) { return nil, err } + // Each node (line) holds the commit where it was introduced or + // last modified. To achieve that we use the FORWARD algorithm + // described in Zimmermann, et al. "Mining Version Archives for + // Co-changed Lines", in proceedings of the Mining Software + // Repositories workshop, Shanghai, May 22-23, 2006. lines, err := newLines(finalLines, b.sliceGraph(len(b.graph)-1)) if err != nil { return nil, err @@ -96,7 +101,7 @@ func Blame(c *object.Commit, path string) (*BlameResult, error) { // Line values represent the contents and author of a line in BlamedResult values. type Line struct { - // Author is the email address of the last author that modified the line + // Author is the email address of the last author that modified the line. Author string // Text is the original text of the line. Text string diff --git a/references.go b/references.go index 338e2b7..68a54a6 100644 --- a/references.go +++ b/references.go @@ -21,7 +21,8 @@ import ( // - Moves and copies are not currently supported. // // - Cherry-picks are not detected unless there are no commits between them and -// therefore can appear repeated in the list. (see git path-id for hints on how to fix this). +// therefore can appear repeated in the list. (see git path-id for hints on how +// to fix this). func References(c *object.Commit, path string) ([]*object.Commit, error) { var result []*object.Commit seen := make(map[plumbing.Hash]struct{}, 0) @@ -22,7 +22,7 @@ import ( var NoErrAlreadyUpToDate = errors.New("already up-to-date") -// Remote represents a connection to a remote repository +// Remote represents a connection to a remote repository. type Remote struct { c *config.RemoteConfig s storage.Storer @@ -32,7 +32,7 @@ func newRemote(s storage.Storer, c *config.RemoteConfig) *Remote { return &Remote{s: s, c: c} } -// Config returns the RemoteConfig object used to instantiate this Remote +// Config returns the RemoteConfig object used to instantiate this Remote. func (r *Remote) Config() *config.RemoteConfig { return r.c } |