We have source "S" folder, destination "D" and Original "O".
D is a copy of O using NTFS hard link for all files.
Now we need to synchronize S and D and copy only changed files from S to D.
Robocopy.exe does that, however it overwrites files and as a result files are changed in both D and O, but we want files in O to remain intact, no matter what.
To correctly update hard link copy one needs to delete file in D (in order to break the link) and then create file with the same name instead of override.
Does robocopy supports that? Perhaps there is a special parameter for that, or is there any other free utility (preferable open source) that knows how to correctly update file if it's a hard link?
You could try using rsync - see this post for details, including readymade backup scripts:
How to create rsync-like hard link backups with VSS on Windows