chore(fs): slightly reduce memory usage of IsParent (#10223)

### Purpose

Small optimizations for IsParent and IsInternal, to avoid needless
allocations.
This commit is contained in:
Daniil Gentili
2025-07-31 16:48:04 +02:00
committed by GitHub
parent 6e26fab3a0
commit 953944e54e
2 changed files with 13 additions and 6 deletions

View File

@@ -285,13 +285,14 @@ func NewFilesystem(fsType FilesystemType, uri string, opts ...Option) Filesystem
return fs
}
// fs cannot import config or versioner, so we hard code .stfolder
// (config.DefaultMarkerName) and .stversions (versioner.DefaultPath)
var internals = []string{".stfolder", ".stignore", ".stversions"}
// IsInternal returns true if the file, as a path relative to the folder
// root, represents an internal file that should always be ignored. The file
// path must be clean (i.e., in canonical shortest form).
func IsInternal(file string) bool {
// fs cannot import config or versioner, so we hard code .stfolder
// (config.DefaultMarkerName) and .stversions (versioner.DefaultPath)
internals := []string{".stfolder", ".stignore", ".stversions"}
for _, internal := range internals {
if file == internal {
return true

View File

@@ -169,10 +169,16 @@ func IsParent(path, parent string) bool {
// not be caught below.
return path != "/"
}
if parent[len(parent)-1] != PathSeparator {
parent += pathSeparatorString
if parent[len(parent)-1] == PathSeparator {
return strings.HasPrefix(path, parent)
}
return strings.HasPrefix(path, parent)
if !strings.HasPrefix(path, parent) {
return false
}
if len(path) <= len(parent) {
return false
}
return path[len(parent)] == PathSeparator
}
func CommonPrefix(first, second string) string {