@@ -2,14 +2,9 @@ package git
22
33import (
44 "bufio"
5- "fmt"
65 "io"
76 "os"
87 "os/exec"
9- "strconv"
10- "strings"
11-
12- "github.com/github/git-sizer/counts"
138)
149
1510// ReferenceIter is an iterator that interates over references.
@@ -58,27 +53,12 @@ func (iter *ReferenceIter) Next() (Reference, bool, error) {
5853 }
5954 return Reference {}, false , nil
6055 }
61- line = line [:len (line )- 1 ]
62- words := strings .Split (line , " " )
63- if len (words ) != 4 {
64- return Reference {}, false , fmt .Errorf ("line improperly formatted: %#v" , line )
65- }
66- oid , err := NewOID (words [0 ])
56+ ref , err := ParseReference (line [:len (line )- 1 ])
6757 if err != nil {
68- return Reference {} , false , fmt . Errorf ( "SHA-1 improperly formatted: %#v" , words [ 0 ])
58+ return ref , false , err
6959 }
70- objectType := ObjectType (words [1 ])
71- objectSize , err := strconv .ParseUint (words [2 ], 10 , 32 )
72- if err != nil {
73- return Reference {}, false , fmt .Errorf ("object size improperly formatted: %#v" , words [2 ])
74- }
75- refname := words [3 ]
76- return Reference {
77- Refname : refname ,
78- ObjectType : objectType ,
79- ObjectSize : counts .Count32 (objectSize ),
80- OID : oid ,
81- }, true , nil
60+
61+ return ref , true , nil
8262}
8363
8464// Close closes the iterator and frees up resources.
0 commit comments