... is a wrapper on SVN which lets you store the real modification times of files.
By itself, depending on the config, SVN will either trample the timestamps outright or set them to the time the file in question was last committed to the repository. For many projects that's enough, but if you either want to preserve a significant chunk of history prior to migration to SVN or want to keep out-of-SVN timestamps for some reason, you're currently out of luck. Subversion guys are working on this problem, yet their fix has still a long time before it's polished enough.

This is where svnt steps in. It's nothing but a crude hack, though.



The timestamp is stored as file:timestamp as number of seconds since 1970-01-01, with an optional (ignored) fractional part.

A non-empty file whose timestamp is changed but contents stay put will not get committed, as this would lead to many unnecessary property changes in many cases. An empty file, though, is considered as a stamp of some sort and thus will have its mtime heeded. Directories are completely ignored.

Credits: plenty of code in svnt comes from Mark Ross' asvn.