* Improve get last commit using git log --name-status git log --name-status -c provides information about the diff between a commit and its parents. Using this and adjusting the algorithm to use the first change to a path allows for a much faster generation of commit info. There is a subtle change in the results generated but this will cause the results to more closely match those from elsewhere. Signed-off-by: Andrew Thornton <art27@cantab.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: techknowlogick <techknowlogick@gitea.io> Co-authored-by: Lauris BH <lauris@nix.lv>
		
			
				
	
	
		
			32 lines
		
	
	
		
			612 B
		
	
	
	
		
			Go
		
	
	
	
		
			Vendored
		
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			612 B
		
	
	
	
		
			Go
		
	
	
	
		
			Vendored
		
	
	
	
| package limio
 | |
| 
 | |
| import "io"
 | |
| 
 | |
| type limitedWriter struct {
 | |
| 	W io.Writer
 | |
| 	N int64
 | |
| }
 | |
| 
 | |
| func (l *limitedWriter) Write(p []byte) (n int, err error) {
 | |
| 	if l.N <= 0 {
 | |
| 		return 0, io.ErrShortWrite
 | |
| 	}
 | |
| 	if int64(len(p)) > l.N {
 | |
| 		p = p[0:l.N]
 | |
| 		err = io.ErrShortWrite
 | |
| 	}
 | |
| 	n, er := l.W.Write(p)
 | |
| 	if er != nil {
 | |
| 		err = er
 | |
| 	}
 | |
| 	l.N -= int64(n)
 | |
| 	return n, err
 | |
| }
 | |
| 
 | |
| // LimitWriter works like io.LimitReader. It writes at most n bytes
 | |
| // to the underlying Writer. It returns io.ErrShortWrite if more than n
 | |
| // bytes are attempted to be written.
 | |
| func LimitWriter(w io.Writer, n int64) io.Writer {
 | |
| 	return &limitedWriter{W: w, N: n}
 | |
| }
 |