Prechádzať zdrojové kódy

Merge pull request #203 from vmarkovtsev/master

Fix binary switches in Burndown
Vadim Markovtsev 6 rokov pred
rodič
commit
4ff0f2864a
2 zmenil súbory, kde vykonal 13 pridanie a 4 odobranie
  1. 5 2
      labours.py
  2. 8 2
      leaves/burndown.go

+ 5 - 2
labours.py

@@ -262,9 +262,12 @@ class ProtobufReader(Reader):
         self.data = AnalysisResults()
         if file != "-":
             with open(file, "rb") as fin:
-                self.data.ParseFromString(fin.read())
+                bytes = fin.read()
         else:
-            self.data.ParseFromString(sys.stdin.buffer.read())
+            bytes = sys.stdin.buffer.read()
+        if not bytes:
+            raise ValueError("empty input")
+        self.data.ParseFromString(bytes)
         self.contents = {}
         for key, val in self.data.contents.items():
             try:

+ 8 - 2
leaves/burndown.go

@@ -1149,12 +1149,18 @@ func (analyser *BurndownAnalysis) handleInsertion(
 func (analyser *BurndownAnalysis) handleDeletion(
 	change *object.Change, author int, cache map[plumbing.Hash]*items.CachedBlob) error {
 
-	name := change.From.Name
+	var name string
+	if change.To.TreeEntry.Hash != plumbing.ZeroHash {
+		// became binary
+		name = change.To.Name
+	} else {
+		name = change.From.Name
+	}
 	file, exists := analyser.files[name]
 	blob := cache[change.From.TreeEntry.Hash]
 	lines, err := blob.CountLines()
 	if exists && err != nil {
-		return fmt.Errorf("file %s unexpectedly became binary", name)
+		return fmt.Errorf("previous version of %s unexpectedly became binary", name)
 	}
 	if !exists {
 		return nil