mirror of
https://github.com/rclone/rclone.git
synced 2024-11-22 08:23:47 +01:00
fs: add more detailed logging for file includes/excludes
This makes a DEBUG log to show why files were included or excluded. Fixes #7463
This commit is contained in:
parent
810644e873
commit
7835991147
@ -330,23 +330,30 @@ func (f *Filter) DirContainsExcludeFile(ctx context.Context, fremote fs.Fs, remo
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Include returns whether this object should be included into the
|
// Include returns whether this object should be included into the
|
||||||
// sync or not
|
// sync or not and logs the reason for exclusion if not included
|
||||||
func (f *Filter) Include(remote string, size int64, modTime time.Time, metadata fs.Metadata) bool {
|
func (f *Filter) Include(remote string, size int64, modTime time.Time, metadata fs.Metadata) bool {
|
||||||
// filesFrom takes precedence
|
// filesFrom takes precedence
|
||||||
if f.files != nil {
|
if f.files != nil {
|
||||||
_, include := f.files[remote]
|
_, include := f.files[remote]
|
||||||
|
if !include {
|
||||||
|
fs.Debugf(remote, "Excluded (FilesFrom Filter)")
|
||||||
|
}
|
||||||
return include
|
return include
|
||||||
}
|
}
|
||||||
if !f.ModTimeFrom.IsZero() && modTime.Before(f.ModTimeFrom) {
|
if !f.ModTimeFrom.IsZero() && modTime.Before(f.ModTimeFrom) {
|
||||||
|
fs.Debugf(remote, "Excluded (ModTime Filter)")
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
if !f.ModTimeTo.IsZero() && modTime.After(f.ModTimeTo) {
|
if !f.ModTimeTo.IsZero() && modTime.After(f.ModTimeTo) {
|
||||||
|
fs.Debugf(remote, "Excluded (ModTime Filter)")
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
if f.Opt.MinSize >= 0 && size < int64(f.Opt.MinSize) {
|
if f.Opt.MinSize >= 0 && size < int64(f.Opt.MinSize) {
|
||||||
|
fs.Debugf(remote, "Excluded (Size Filter)")
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
if f.Opt.MaxSize >= 0 && size > int64(f.Opt.MaxSize) {
|
if f.Opt.MaxSize >= 0 && size > int64(f.Opt.MaxSize) {
|
||||||
|
fs.Debugf(remote, "Excluded (Size Filter)")
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
if f.metaRules.len() > 0 {
|
if f.metaRules.len() > 0 {
|
||||||
@ -360,10 +367,15 @@ func (f *Filter) Include(remote string, size int64, modTime time.Time, metadata
|
|||||||
metadatas = append(metadatas, "\x00=\x00")
|
metadatas = append(metadatas, "\x00=\x00")
|
||||||
}
|
}
|
||||||
if !f.metaRules.includeMany(metadatas) {
|
if !f.metaRules.includeMany(metadatas) {
|
||||||
|
fs.Debugf(remote, "Excluded (Metadata Filter)")
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return f.IncludeRemote(remote)
|
include := f.IncludeRemote(remote)
|
||||||
|
if !include {
|
||||||
|
fs.Debugf(remote, "Excluded (Path Filter)")
|
||||||
|
}
|
||||||
|
return include
|
||||||
}
|
}
|
||||||
|
|
||||||
// IncludeObject returns whether this object should be included into
|
// IncludeObject returns whether this object should be included into
|
||||||
|
@ -320,8 +320,6 @@ func listR(ctx context.Context, f fs.Fs, path string, includeAll bool, listType
|
|||||||
}
|
}
|
||||||
if include {
|
if include {
|
||||||
filteredEntries = append(filteredEntries, entry)
|
filteredEntries = append(filteredEntries, entry)
|
||||||
} else {
|
|
||||||
fs.Debugf(entry, "Excluded from sync (and deletion)")
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
entries = filteredEntries
|
entries = filteredEntries
|
||||||
@ -480,8 +478,6 @@ func walkRDirTree(ctx context.Context, f fs.Fs, startPath string, includeAll boo
|
|||||||
dirs.Add(x)
|
dirs.Add(x)
|
||||||
excluded = false
|
excluded = false
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
fs.Debugf(x, "Excluded from sync (and deletion)")
|
|
||||||
}
|
}
|
||||||
// Make sure we include any parent directories of excluded objects
|
// Make sure we include any parent directories of excluded objects
|
||||||
if excluded {
|
if excluded {
|
||||||
@ -511,7 +507,6 @@ func walkRDirTree(ctx context.Context, f fs.Fs, startPath string, includeAll boo
|
|||||||
if basename == excludeFile {
|
if basename == excludeFile {
|
||||||
excludeDir := parentDir(x.Remote())
|
excludeDir := parentDir(x.Remote())
|
||||||
toPrune[excludeDir] = true
|
toPrune[excludeDir] = true
|
||||||
fs.Debugf(basename, "Excluded from sync (and deletion) based on exclude file")
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -529,8 +524,6 @@ func walkRDirTree(ctx context.Context, f fs.Fs, startPath string, includeAll boo
|
|||||||
dirs.AddDir(x)
|
dirs.AddDir(x)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
fs.Debugf(x, "Excluded from sync (and deletion)")
|
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
return fmt.Errorf("unknown object type %T", entry)
|
return fmt.Errorf("unknown object type %T", entry)
|
||||||
|
Loading…
Reference in New Issue
Block a user