Платформа ЦРНП "Мирокод" для разработки проектов
https://git.mirocod.ru
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
1019 B
39 lines
1019 B
// Copyright 2019 The Gitea Authors. |
|
// All rights reserved. |
|
// Use of this source code is governed by a MIT-style |
|
// license that can be found in the LICENSE file. |
|
|
|
//go:build gogit |
|
// +build gogit |
|
|
|
package git |
|
|
|
import ( |
|
"os" |
|
"path" |
|
|
|
gitealog "code.gitea.io/gitea/modules/log" |
|
|
|
"github.com/go-git/go-git/v5/plumbing/format/commitgraph" |
|
cgobject "github.com/go-git/go-git/v5/plumbing/object/commitgraph" |
|
) |
|
|
|
// CommitNodeIndex returns the index for walking commit graph |
|
func (r *Repository) CommitNodeIndex() (cgobject.CommitNodeIndex, *os.File) { |
|
indexPath := path.Join(r.Path, "objects", "info", "commit-graph") |
|
|
|
file, err := os.Open(indexPath) |
|
if err == nil { |
|
var index commitgraph.Index |
|
index, err = commitgraph.OpenFileIndex(file) |
|
if err == nil { |
|
return cgobject.NewGraphCommitNodeIndex(index, r.gogitRepo.Storer), file |
|
} |
|
} |
|
|
|
if !os.IsNotExist(err) { |
|
gitealog.Warn("Unable to read commit-graph for %s: %v", r.Path, err) |
|
} |
|
|
|
return cgobject.NewObjectCommitNodeIndex(r.gogitRepo.Storer), nil |
|
}
|
|
|