We do a lot of pushing files internationally on parts of the equipment that we work remotely.
Our solution was to create a special tool for this (in fact, there are many other things) that performs a kind of βdelta copyβ - i.e. only pushes portions of files that have changed.
This frees you from worrying about file timestamps, etc. - the file that you end at the far end is a byte for the byte, identical to the nearest, but if the only thing that has essentially changed is an internal time stamp, then very little data will need to be moved along the wire.
We used an algorithm based roughly on how rsync works ( http://samba.anu.edu.au/rsync/tech_report/ ), although we wrote it from scratch in C #.
However, in your situation, it may actually be easier to simplify the configuration of rsync and the batch file to invoke it with the correct environment / settings. There is a rsync version for Win32 here: http://www.itefix.no/i2/node/10650 , which I use successfully.
source share