Hello (this is for amusement only - an interesting experience),
if anyone would like to know why the idea with experimental branch of
minimals didn't work out in its current form (I wanted to have a full
tree and a separated tree with fixes only, but it took files from
current and experimental in an arbitrary order).
This is an answer from the mailing list:
Duh. I realize now that it's perfectly reasonable for you to be able to
reproduce the problem while I can't. Versions 2.6.9 and earlier of
rsync sort the file-list using the C library's quicksort, an unstable
sort, so the results in case of duplicate files are highly sensitive to
both the C library implementation and the order of directory entries in
the source (which in turn is sensitive to the filesystem
implementation). You probably have both a different C library and a
different filesystem than I do.
In any case, since rsync 3.0.0pre1, the default file-list sorting
algorithm is a mergesort, which is stable, so files from earlier source
arguments take priority. If you upgrade to an rsync 3.0.0pre* version,
your scenario should work consistently. If it doesn't, that's a bug we
should try to fix.