Continuously copy all file changes from one folder to another on change (Windows)

I'm working on a massive Java web application which is kept under centralized version control, but the source files are used to build and run the actual server, which then copies all the files I work on into a random temporary directory while it's running.

My problem is that I need to either rebuild this huge application to see any changes to my files, or keep track of all my changes and copy over the files I've changed back to their source location before committing them back to source control.

My question is: is there a command line script I can run that will monitor any changes in the source folder and automatically copy changed files across to temporary folder X?

The idea is to remove the human point of failure in having to manually mitigate the two-locations problem.

9

5 Answers

I suggest FreeFileSync, which appears to have the ability to create a script that will automatically sync the two folders every few seconds. I haven't played with it personally, but it looks promising.

enter image description hereenter image description here

4

Have you considered using RoboCopy?

RoboCopy can be set to copy the data after a set period of time has elapsed and/or a number of changes to the datasets have occured.

/MON:n : MONitor source; run again when more than n changes seen.
/MOT:m : MOnitor source; run again in m minutes Time, if changed.

2

You also might want to have a look at the (ageing) DeltaCopy client and server. Basically, it’s a Linux-like rsync implementation for Windows, scriptable (using the Windows scheduler, if wanted) and its main advantage is that only the changed parts of a modified file (yes, file!) are transmitted. This can save a lot of traffic on big projects. A disadvantage is, of course, that it has to build and transmit a file list before.

Also, there are some (small) caveats:

  • As it is older software, you might have to replace cygwin1.dll on Windows machines. (If you sync files between Linux and Windows, only. It uses cygwin as the underlying framework which didn’t handle 16-bit Unicode/UTF-8 filename conversion correctly at that time.)
  • It’s not exactly that user-friendly, you should have a look at Linux’ rsync manpage to exploit its full potential.
  • On Windows, it requires a »client« and a »server« machine.
  • If the server is a Linux machine, you’ll have to setup rsyncd correctly.
  • No support for Windows’ Volume Shadow Copy (might not be needed, though).

Well, it also has advantages (that’s why I still use it daily):

  • Fully compatible with *NIX rsync and rsyncd. A proven, well-known and highly efficient syncing system. Still.
  • Keeps overhead small: Only the changed data (even inside files!) gets transported over the network. So it’s also very nice if you are teleworking or connect to your server via slow connections.
  • Failsafe, apparently. I’ve rsync’d many many gigabytes of data over the years, and not one flaw happened when »patching up« the target files. Even if I found the concept a little worrying, at first.
  • I still use DeltyCopy to backup files from Windows machines to both a central Linux server and a Windows 2003 server on a daily basis. Works extremely well and safe, if installed correctly.

Well, up to you. Have fun! (And let us know about FreeFileSync!)

A useful command is xcopy /m src\* dest. this will copy all files from src to dest and clears the archive bit on all the src files. Whenever you touch a src file, Windows will automatically set the archive bit. Next time you run xcopy /m it will only copy the changed files.

If you want to run it continuously, write a small script like

@echo off
echo Watching for changes to %1 ...
:top
xcopy /m /y %1\* %2 | find /v "File(s) copied"
timeout /t 2 >nul
goto :top
1

Use robocopy to mirror a directory tree:

robocopy source\ dest\ /mir

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like