| 
					
				 | 
			
			
				@@ -28,8 +28,10 @@ each identity on separate line, matching names and emails separated with | 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 package main 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	"bytes" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	"flag" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	"fmt" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	"io" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	"net/http" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	_ "net/http/pprof" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	"os" 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -58,6 +60,23 @@ func sortedKeys(m map[string][][]int64) []string { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	return keys 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+type OneLineWriter struct { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Writer io.Writer 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+func (writer OneLineWriter) Write(p []byte) (n int, err error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if p[len(p) - 1] == '\n' { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		p = p[:len(p) - 1] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if bytes.Compare(p[len(p) - 5:], []byte("done.")) == 0 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			p = []byte("cloning...") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		p = append(p, '\r') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		writer.Writer.Write([]byte("\r" + strings.Repeat(" ", 80) + "\r")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	n, err = writer.Writer.Write(p) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 func main() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	var protobuf bool 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	var withFiles bool 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -119,8 +138,9 @@ func main() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		fmt.Fprint(os.Stderr, "cloning...\r") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		repository, err = git.Clone(backend, nil, &git.CloneOptions{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			URL: uri, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			Progress: OneLineWriter{Writer: os.Stderr}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		fmt.Fprint(os.Stderr, "          \r") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		fmt.Fprint(os.Stderr, strings.Repeat(" ", 80) + "\r") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if uri[len(uri)-1] == os.PathSeparator { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			uri = uri[:len(uri)-1] 
			 |