Without having followed the topic in detail, I noticed one comment in an issue that has been created:
Conversely, if I only need to copy specific files from the remote to the local (using --include
), but other irrelevant folders under that path on the remote will also be created on my local machine with the original structure. This did not exist in previous versions and is a bit annoying.
That sounds like something that could be closer to the regression side than the improvement side of the discussion, or..?
1 Like
nielash
(Niel)
March 28, 2024, 8:01am
22
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"
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
.)
asdffdsa:
enable full support for directories.
--s3-directory-markers
- change default from false to true.
???
If we're just getting into our personal wishlists of defaults we wish were different, my top picks are probably:
empty dirs synced by default (with flag to disable)
--checksum
should not imply ignoring modtime
--metadata
enabled by default
--fix-case
enabled by default
But that's just my personal preference -- I'm sure some users will disagree
RCopy
March 28, 2024, 8:51am
23
Please do as it's best for you to implement.
As long as I can specify a flag or rely on defaults to restore the 1.65.2 behavior and avoid the 32x performance hit, I'm fine with either options.
1 Like
ncw
(Nick Craig-Wood)
April 2, 2024, 10:53am
24
This is being tracked in this issue
opened 06:54AM - 25 Mar 24 UTC
bug
Point Release Candidate
#### What is the problem you are having with rclone?
`Rclone will now sync di… rectory modification times if the backend supports it`
That's a cool new feature, but I think it shouldn't be enabled by default, or it should ignore folders by default where no files need to be transferred.
In the previous version, I could simply `copy` to the remote within the folder where I needed to upload files, but now I have to remove the other folders in that folder that have no files first, otherwise these empty folders will also be created on the remote due to the sync modification time.
Conversely, if I only need to copy specific files from the remote to the local (using `--include`), but other irrelevant folders under that path on the remote will also be created on my local machine with the original structure. This did not exist in previous versions and is a bit annoying.
#### What is your rclone version (output from `rclone version`)
rclone v1.66.0
- os/version: debian 10.0 (64 bit)
- os/kernel: 5.14.9 (x86_64)
- os/type: linux
- os/arch: amd64
- go/version: go1.22.1
- go/linking: static
- go/tags: none
#### Which OS you are using and how many bits (e.g. Windows 7, 64 bit)
The information has already been mentioned above.
#### Which cloud storage system are you using? (e.g. Google Drive)
This is not related to a specific backend.
#### The command you were trying to run (e.g. `rclone copy /tmp remote:tmp`)
`rclone copy -vv Source Remote --include E.txt`
#### A log from the command with the `-vv` flag (e.g. output from `rclone -vv copy /tmp remote:tmp`)
```shell
root@localhost:~/TEST# tree
.
└── Source
├── A
│ └── D
├── B
├── C
└── E.txt
5 directories, 1 file
root@localhost:~/TEST# rclone copy -vv Source Remote --include E.txt
2024/03/24 23:51:52 DEBUG : rclone: Version "v1.66.0" starting with parameters ["rclone" "copy" "-vv" "Source" "Remote" "--include" "E.txt"]
2024/03/24 23:51:52 DEBUG : Creating backend with remote "Source"
2024/03/24 23:51:52 DEBUG : Using config file from "/root/.config/rclone/rclone.conf"
2024/03/24 23:51:52 DEBUG : fs cache: renaming cache item "Source" to be canonical "/root/TEST/Source"
2024/03/24 23:51:52 DEBUG : Creating backend with remote "Remote"
2024/03/24 23:51:52 DEBUG : fs cache: renaming cache item "Remote" to be canonical "/root/TEST/Remote"
2024/03/24 23:51:52 DEBUG : A: Making directory with metadata
2024/03/24 23:51:52 INFO : A: Made directory with metadata (mtime=2024-03-24T23:50:07.378243503-07:00)
2024/03/24 23:51:52 DEBUG : Added delayed dir = "A", newDst=A
2024/03/24 23:51:52 DEBUG : B: Making directory with metadata
2024/03/24 23:51:52 INFO : B: Made directory with metadata (mtime=2024-03-24T23:50:01.04917523-07:00)
2024/03/24 23:51:52 DEBUG : Added delayed dir = "B", newDst=B
2024/03/24 23:51:52 DEBUG : C: Making directory with metadata
2024/03/24 23:51:52 INFO : C: Made directory with metadata (mtime=2024-03-24T23:50:03.246198928-07:00)
2024/03/24 23:51:52 DEBUG : Added delayed dir = "C", newDst=C
2024/03/24 23:51:52 DEBUG : E.txt: Need to transfer - File not found at Destination
2024/03/24 23:51:52 DEBUG : A/D: Making directory with metadata
2024/03/24 23:51:52 INFO : A/D: Made directory with metadata (mtime=2024-03-24T23:50:07.378243503-07:00)
2024/03/24 23:51:52 DEBUG : Added delayed dir = "A/D", newDst=A/D
2024/03/24 23:51:52 DEBUG : Local file system at /root/TEST/Remote: Waiting for checks to finish
2024/03/24 23:51:52 DEBUG : E.txt: md5 = d8e8fca2dc0f896fd7cb4cb0031ba249 OK
2024/03/24 23:51:52 DEBUG : E.txt.cihekil4.partial: renamed to: E.txt
2024/03/24 23:51:52 INFO : E.txt: Copied (new)
2024/03/24 23:51:52 DEBUG : Local file system at /root/TEST/Remote: Waiting for transfers to finish
2024/03/24 23:51:52 INFO : A/D: Set directory modification time (using SetModTime)
2024/03/24 23:51:52 INFO : C: Set directory modification time (using SetModTime)
2024/03/24 23:51:52 INFO : A: Set directory modification time (using SetModTime)
2024/03/24 23:51:52 INFO : B: Set directory modification time (using SetModTime)
2024/03/24 23:51:52 INFO :
Transferred: 5 B / 5 B, 100%, 0 B/s, ETA -
Transferred: 1 / 1, 100%
Elapsed time: 0.0s
2024/03/24 23:51:52 DEBUG : 7 go routines active
root@localhost:~/TEST# tree
.
├── Remote
│ ├── A
│ │ └── D
│ ├── B
│ ├── C
│ └── E.txt
└── Source
├── A
│ └── D
├── B
├── C
└── E.txt
10 directories, 2 files
```
#### How to use GitHub
* Please use the 👍 [reaction](https://blog.github.com/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/) to show that you are affected by the same issue.
* Please don't comment if you have no relevant information to add. It's just extra noise for everyone subscribed to this issue.
* Subscribe to receive notifications on status change and new comments.
I plan to fix this for the point release
1 Like
ncw
(Nick Craig-Wood)
April 6, 2024, 11:38am
25
Please try this fix
v1.67.0-beta.7855.13c72a94e.fix-7689-empty-dirs on branch fix-7689-empty-dirs (uploaded in 15-30 mins)
It should restore v1.65.2 behaviour
ncw
(Nick Craig-Wood)
May 3, 2024, 11:32am
26
Thanks for testing
I've merged this to master now which means it will be in the latest beta in 15-30 minutes and released in v1.66.1
1 Like
system
(system)
Closed
June 2, 2024, 11:32am
27
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.