From b26c3b482feb57704aa399d8d72a959ce667b879 Mon Sep 17 00:00:00 2001 From: 6543 <6543@obermui.de> Date: Tue, 20 Jul 2021 15:16:20 +0200 Subject: Add TestPrepareWikiFileName (#16487) * Add TestPrepareWikiFileName * use LsTree as LsFiles is index only * ajust other tests Co-authored-by: Andrew Thornton --- modules/git/tree.go | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'modules/git') diff --git a/modules/git/tree.go b/modules/git/tree.go index 059f0a8287..3671f421e9 100644 --- a/modules/git/tree.go +++ b/modules/git/tree.go @@ -6,6 +6,7 @@ package git import ( + "bytes" "strings" ) @@ -45,3 +46,23 @@ func (t *Tree) SubTree(rpath string) (*Tree, error) { } return g, nil } + +// LsTree checks if the given filenames are in the tree +func (repo *Repository) LsTree(ref string, filenames ...string) ([]string, error) { + cmd := NewCommand("ls-tree", "-z", "--name-only", "--", ref) + for _, arg := range filenames { + if arg != "" { + cmd.AddArguments(arg) + } + } + res, err := cmd.RunInDirBytes(repo.Path) + if err != nil { + return nil, err + } + filelist := make([]string, 0, len(filenames)) + for _, line := range bytes.Split(res, []byte{'\000'}) { + filelist = append(filelist, string(line)) + } + + return filelist, err +} -- cgit v1.2.3