aboutsummaryrefslogtreecommitdiffstats
path: root/blame.go
diff options
context:
space:
mode:
authorJoshua Sjoding <joshua.sjoding@scjalliance.com>2016-02-24 22:40:30 -0800
committerJoshua Sjoding <joshua.sjoding@scjalliance.com>2016-02-25 00:38:51 -0800
commit0d999e1db6cd8736ab697de8ce848fa3a5274b9f (patch)
tree6107f49405bb605793f1bcd7ef4961ceadcb11e9 /blame.go
parent07ca1ac7f3058ea6d3274a01973541fb84782f5e (diff)
downloadgo-git-0d999e1db6cd8736ab697de8ce848fa3a5274b9f.tar.gz
Refactor to use core.ObjectReader and core.ObjectWriter
* New function signatures provide the necessary interface to stream data from disk when using filesystem-based storage in the future * New function signatures provide proper error handling * ObjectReader and ObjectWriter interfaces added to avoid future refactoring, currently are type aliases for io.ReadCloser and io.WriteCloser respectively * Object.Reader now returns (ObjectReader, error) * Object.Writer now returns (ObjectWriter, error) * File.Contents now returns (string, error) * File.Lines now returns ([]string, error) * Blob.Reader now returns (core.ObjectReader, error) * Added internal close helper function for deferred calls to Close that need to check the return value
Diffstat (limited to 'blame.go')
-rw-r--r--blame.go15
1 files changed, 12 insertions, 3 deletions
diff --git a/blame.go b/blame.go
index 7dc2cc0..3eb4c35 100644
--- a/blame.go
+++ b/blame.go
@@ -82,7 +82,10 @@ func (c *Commit) Blame(path string) (*Blame, error) {
if err != nil {
return nil, err
}
- finalLines := file.Lines()
+ finalLines, err := file.Lines()
+ if err != nil {
+ return nil, err
+ }
lines, err := newLines(finalLines, b.sliceGraph(len(b.graph)-1))
if err != nil {
@@ -153,7 +156,10 @@ func (b *blame) fillGraphAndData() error {
if err != nil {
return nil
}
- b.data[i] = file.Contents()
+ b.data[i], err = file.Contents()
+ if err != nil {
+ return err
+ }
nLines := countLines(b.data[i])
// create a node for each line
b.graph[i] = make([]*Commit, nLines)
@@ -221,7 +227,10 @@ func (b *blame) GoString() string {
if err != nil {
panic("PrettyPrint: internal error in repo.Data")
}
- contents := file.Contents()
+ contents, err := file.Contents()
+ if err != nil {
+ panic("PrettyPrint: internal error in repo.Data")
+ }
lines := strings.Split(contents, "\n")
// max line number length