I had those flags setup, but did not really know what any of the output meant. It was pretty cryptic, probably more something that the developers would use.
I mean, it's terse and ascii, like most unix-type terminal outputs are, but it's not a developer tool like say, triple '-v' output is. Here is a good summary of the results:
https://stackoverflow.com/questions/4493525/rsync-what-means-the-f-on-rsync-logs
The "%i" escape has a cryptic output that is 11 letters long. The general format is like the string YXcstpoguax, where Y is replaced by the type of update being done, X is replaced by the file-type, and the other letters represent attributes that may be output if they are being modified.
Explanation of attributes:
- c -> checksum differs
- s -> size differs
- t -> mtime differs
- p -> permissions differ
- o -> owners
- g -> group
- u -> reserved for future use
- a -> ACLs
- x -> extended attributes
- + -> is new (all +++++'s indicates a new file)
- . -> is unchanged
so:
>f+++++++++ runuo.exe.BAK
means runuo.exe.BAK is a file (f) that doesn't exist at the target (+++++++++) and is being transmitted (>)
while:
>fcsT...... core/RunuoAoV/Items/Container.cs
means that Container.cs is a file (f) that exists at the target, but it has a checksum (c), size (s), and mtime (t,T), that differ at the target from the source. The diffs are being transmitted (>) and metadata are being updated with (T) indicating that you didn't use the "-t, --times" flags (or -a, --archive which imply -t, --times) so the new mtime will be set to the transfer time. If you had used '-t' or '-a' the mtime at the target would instead be set to mtime at the source.
Edit:
So with regards to your 2nd post, did you run the script once, or twice? I'd expect it to take a long time the first time since the '-a' flag will have to touch almost every file to get the mtimes and since the mtimes differe but the sizes are the same it will probably have to read every file also to look for diffs. I'd expect the next time you run the script to be very fast if not much has changed. If you're making small changes to huge files though, it will still probably take a while to compute diffs to transmit.
I think you're incorrect about your map files. Simply reading a file will not change the file's mtime, even opening a file for read/write will not change the mtime if no data is written to the file, or if the file isn't truncated in a way that shrinks it. Reading any non-zero amount of data from a file, or executing a file, will change the file's atime, but rsync doesn't care one bit about atimes.