forked from forgejo/forgejo
Use git log name-status in get last commit (#16059)
* 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>
This commit is contained in:
parent
8fa3bbc424
commit
23358bc55d
40 changed files with 2540 additions and 297 deletions
31
vendor/github.com/djherbis/buffer/limio/limit.go
generated
vendored
Normal file
31
vendor/github.com/djherbis/buffer/limio/limit.go
generated
vendored
Normal file
|
@ -0,0 +1,31 @@
|
|||
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}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue