How to ignore empty directories when uploading from Windows?

I think technically the --include filtering behavior also worked like that in v1.65.2:

rclone tree test --include E.txt  
/
├── E.txt
├── a
│   └── d
├── b
└── c

4 directories, 1 files

vs. with a slash:

rclone tree test --include /E.txt
/
└── E.txt

0 directories, 1 files

Both examples above are using:

rclone v1.65.2
- os/version: darwin 14.3.1 (64 bit)
- os/kernel: 23.3.0 (arm64)
- os/type: darwin
- os/arch: arm64 (ARMv8 compatible)
- go/version: go1.21.6
- go/linking: dynamic
- go/tags: cmount

The difference is that those empty directories were previously ignored by sync, even though they were "included". (Which to me begs the question: if they're "included", why should they be ignored?)

I agree that this filtering behavior is counterintuitive, and I'd be supportive of changing it... but that would be another "breaking change" :grimacing:

I've also been thinking for awhile that a new --dirs-from filtering option is needed, to specify which dirs should have their metadata synced. (Among other reasons, it would solve a difficult problem in bisync.)

If we're just getting into our personal wishlists of defaults we wish were different, my top picks are probably:

  1. empty dirs synced by default (with flag to disable)
  2. --checksum should not imply ignoring modtime
  3. --metadata enabled by default
  4. --fix-case enabled by default

But that's just my personal preference -- I'm sure some users will disagree :sweat_smile: