From f570e2f2685aa43aa518c2f8578391c1847cddbe Mon Sep 17 00:00:00 2001 From: Daniel Wilhelm Date: Fri, 18 Apr 2014 17:04:59 +0200 Subject: 3.3 --- Application.cpp | 1 + BUILD/Changelog.txt | 20 + BUILD/Compare_Complete.wav | Bin 0 -> 46 bytes BUILD/FreeFileSync.chm | Bin 139070 -> 168410 bytes BUILD/Help/html/Features.html | 47 +- BUILD/Help/html/advanced/EnvironmentVariables.html | 14 +- BUILD/Help/html/advanced/RealtimeSync.html | 103 ++- .../html/advanced/RealtimeSync_html_72dda21b.gif | Bin 39593 -> 0 bytes BUILD/Help/html/advanced/ScheduleBatch.html | 16 +- BUILD/Help/html/advanced/SendMail.html | 15 +- BUILD/Help/html/advanced/SymbolicLinks.html | 10 +- BUILD/Help/html/advanced/VariableDrive.html | 12 +- BUILD/Help/html/advanced/rts.png | Bin 0 -> 32069 bytes BUILD/Help/html/advanced/rts23.png | Bin 0 -> 36157 bytes BUILD/Languages/chinese_simple.lng | 70 +- BUILD/Languages/chinese_traditional.lng | 76 +- BUILD/Languages/czech.lng | 68 +- BUILD/Languages/dutch.lng | 72 +- BUILD/Languages/finnish.lng | 70 +- BUILD/Languages/french.lng | 70 +- BUILD/Languages/german.lng | 66 +- BUILD/Languages/hungarian.lng | 68 +- BUILD/Languages/italian.lng | 72 +- BUILD/Languages/japanese.lng | 70 +- BUILD/Languages/polish.lng | 72 +- BUILD/Languages/portuguese.lng | 70 +- BUILD/Languages/portuguese_br.lng | 74 +- BUILD/Languages/romanian.lng | 72 +- BUILD/Languages/russian.lng | 70 +- BUILD/Languages/slovenian.lng | 74 +- BUILD/Languages/spanish.lng | 660 +++++++-------- BUILD/Languages/swedish.lng | 886 +++++++++++++++++++++ BUILD/Languages/turkish.lng | 70 +- BUILD/Resources.dat | Bin 283152 -> 275228 bytes BUILD/Sync_Complete.wav | Bin 58 -> 364076 bytes BUILD/mingwm10.dll | Bin 19763 -> 0 bytes FreeFileSync.cbp | 9 + FreeFileSync.vcproj | 33 +- Makefile | 1 + RealtimeSync/RealtimeSync.cbp | 4 + RealtimeSync/RealtimeSync.vcproj | 33 +- RealtimeSync/RealtimeSync.xpm | 312 -------- RealtimeSync/application.cpp | 28 + RealtimeSync/application.h | 4 +- RealtimeSync/functions.h | 2 +- RealtimeSync/guiGenerated.cpp | 38 +- RealtimeSync/guiGenerated.h | 9 +- RealtimeSync/mainDialog.cpp | 32 +- RealtimeSync/mainDialog.h | 6 +- RealtimeSync/resources.cpp | 27 +- RealtimeSync/resources.h | 4 - RealtimeSync/trayMenu.cpp | 23 +- RealtimeSync/trayMenu.h | 12 +- RealtimeSync/watcher.cpp | 335 +++++++- RealtimeSync/watcher.h | 16 +- RealtimeSync/xmlFreeFileSync.h | 4 +- RealtimeSync/xmlProcessing.h | 18 +- algorithm.cpp | 520 ++++++------ algorithm.h | 4 +- comparison.cpp | 106 ++- comparison.h | 14 +- fileHierarchy.cpp | 26 +- fileHierarchy.h | 63 +- library/CustomGrid.cpp | 236 +++--- library/FreeFileSync.xpm | 425 ---------- library/Recycler/Recycler_Vista.vcproj | 409 ++++++++++ library/Recycler/dllmain.cpp | 22 + library/Recycler/recycler.cpp | 142 ++++ library/Recycler/recycler.h | 24 + library/ShadowCopy/Shadow_2003.vcproj | 4 +- library/ShadowCopy/Shadow_XP.vcproj | 4 +- library/ShadowCopy/shadow.cpp | 1 + library/detectRenaming.cpp | 279 +++++++ library/detectRenaming.h | 20 + library/filter.cpp | 22 +- library/filter.h | 54 +- library/iconBuffer.cpp | 145 +++- library/iconBuffer.h | 8 +- library/processXml.cpp | 6 + library/processXml.h | 11 +- library/resources.cpp | 177 +--- library/resources.h | 159 +--- library/statistics.cpp | 8 +- library/statistics.h | 2 +- shared/buildInfo.h | 12 + shared/customButton.cpp | 6 +- shared/customComboBox.cpp | 4 + shared/dllLoader.cpp | 45 +- shared/dllLoader.h | 13 +- shared/fileHandling.cpp | 239 +++--- shared/fileHandling.h | 6 +- shared/fileID.cpp | 82 ++ shared/fileID.h | 194 +++++ shared/fileTraverser.cpp | 22 +- shared/localization.cpp | 13 +- shared/longPathPrefix.cpp | 95 +++ shared/longPathPrefix.h | 27 + shared/recycler.cpp | 128 +++ shared/recycler.h | 21 + shared/shadow.cpp | 122 ++- shared/shadow.h | 3 - shared/zstring.cpp | 123 ++- shared/zstring.h | 24 +- structures.cpp | 23 +- structures.h | 3 +- synchronization.cpp | 170 +++- synchronization.h | 11 +- ui/MainDialog.cpp | 239 +++--- ui/MainDialog.h | 6 +- ui/SmallDialogs.cpp | 96 ++- ui/batchStatusHandler.cpp | 16 +- ui/checkVersion.cpp | 19 +- ui/folderPair.h | 12 +- ui/gridView.cpp | 29 +- ui/gridView.h | 4 +- ui/guiGenerated.cpp | 50 +- ui/guiGenerated.h | 16 +- ui/settingsDialog.cpp | 154 ++-- ui/settingsDialog.h | 2 +- ui/sorting.h | 27 +- ui/trayIcon.cpp | 87 +- ui/trayIcon.h | 2 +- version/version.h | 2 +- 123 files changed, 5951 insertions(+), 3025 deletions(-) create mode 100644 BUILD/Compare_Complete.wav delete mode 100644 BUILD/Help/html/advanced/RealtimeSync_html_72dda21b.gif create mode 100644 BUILD/Help/html/advanced/rts.png create mode 100644 BUILD/Help/html/advanced/rts23.png create mode 100644 BUILD/Languages/swedish.lng delete mode 100644 BUILD/mingwm10.dll delete mode 100644 RealtimeSync/RealtimeSync.xpm delete mode 100644 library/FreeFileSync.xpm create mode 100644 library/Recycler/Recycler_Vista.vcproj create mode 100644 library/Recycler/dllmain.cpp create mode 100644 library/Recycler/recycler.cpp create mode 100644 library/Recycler/recycler.h create mode 100644 library/detectRenaming.cpp create mode 100644 library/detectRenaming.h create mode 100644 shared/buildInfo.h create mode 100644 shared/fileID.cpp create mode 100644 shared/fileID.h create mode 100644 shared/longPathPrefix.cpp create mode 100644 shared/longPathPrefix.h create mode 100644 shared/recycler.cpp create mode 100644 shared/recycler.h diff --git a/Application.cpp b/Application.cpp index 04b687b8..6b17bc19 100644 --- a/Application.cpp +++ b/Application.cpp @@ -246,6 +246,7 @@ void Application::runBatchMode(const wxString& filename, xmlAccess::XmlGlobalSet FreeFileSync::CompareProcess comparison(batchCfg.mainCfg.hidden.traverseDirectorySymlinks, batchCfg.mainCfg.hidden.fileTimeTolerance, globSettings.ignoreOneHourDiff, + globSettings.detectRenameThreshold, globSettings.optDialogs, statusHandler.get()); diff --git a/BUILD/Changelog.txt b/BUILD/Changelog.txt index efd4697e..5bc1a41b 100644 --- a/BUILD/Changelog.txt +++ b/BUILD/Changelog.txt @@ -2,6 +2,26 @@ |FreeFileSync| -------------- +Changelog v3.3 +-------------- +New installer package for portable/local/32/64-bit versions +Built-in support for very long filenames: apply \\?\-prefix automatically +New button for synchonization preview: show equal files +RealtimeSync: Respond to directory or volume arrival, e.g. USB stick insert +Start comparison automatically when double-clicking on *.ffs_gui files +Visual progress indicator for sys-tray icon +Fixed string comparison for '' and 'ss' (all Windows versions) +Fixed general string comparison for Windows 2000 +Significantly faster file icon loading +Applied new IFileOperation interface for recycle bin (Windows >= Vista) +Patched mode to handle FAT32 2-second file time precision +Play optional sound after comparison: "Compare_Complete.wav" +Allow environment variables for logfile-directory +Enhanced conflict reporting +Added Swedish translation +Updated translation files + + Changelog v3.2 -------------- Native Windows 64-Bit version (including Volume Shadow Copy Service) diff --git a/BUILD/Compare_Complete.wav b/BUILD/Compare_Complete.wav new file mode 100644 index 00000000..f304e6d7 Binary files /dev/null and b/BUILD/Compare_Complete.wav differ diff --git a/BUILD/FreeFileSync.chm b/BUILD/FreeFileSync.chm index 3cf06742..139df0e1 100644 Binary files a/BUILD/FreeFileSync.chm and b/BUILD/FreeFileSync.chm differ diff --git a/BUILD/Help/html/Features.html b/BUILD/Help/html/Features.html index 75aea41d..7a40fcdb 100644 --- a/BUILD/Help/html/Features.html +++ b/BUILD/Help/html/Features.html @@ -3,9 +3,9 @@ - + - + - +

RealtimeSync


@@ -30,55 +30,120 @@ primary function is to trigger synchronization immediately after files in a source directory have changed. However its implementation is much more flexible to cover an even broader range of use: A list of directories provided by the user is monitored for changes. -Whenever a file or a subdirectory is modified, RealtimeSync responds -by executing the user-specified commandline.

+Whenever a file within these directories or subdirectories is +modified OR the directory becomes available (e.g. insert of a +USB-stick), RealtimeSync responds by executing the user-specified +command line.


Example: (Real time synchronization - in combination with FreeFileSync)

First -specify all directories that shall be monitored. Instead of doing -this manually you can simply import a *.ffs_batch file via Menu +start up RealtimeSync.exe located in FreeFileSync's installation +directory. Then specify all directories that shall be monitored. +Instead of doing this manually you can simply import a *.ffs_batch +file via Menu -> File -> Load configuration. This not only extracts all directories relevant for synchronization -but also sets up the commandline to execute the *.ffs_batch file -every time changes are detected. Then press start to begin -monitoring.

+but also sets up the command-line to execute the *.ffs_batch +file every time changes are detected. +Now press "Start" +to begin monitoring.

    -

    +


    -

    +

      Note:

    • Using RealtimeSync is not - restricted to starting FreeFileSync. It can also be used for other + restricted to starting FreeFileSync. It can also be used in other scenarios, like sending an email whenever a certain directory is modified.

    • Starting the tool can be automated - by passing a RealtimeSync configuration file (*.ffs_real) OR a - FreeFileSync Batch file (*.ffs_batch) as first commandline - argument. This allows for integration with your operating system's - autostart facility:

      + by passing a RealtimeSync configuration file (*.ffs_real) + OR a FreeFileSync Batch file (*.ffs_batch) + as first command-line argument. This allows for integration with + your operating system's autostart facility:



+
    +

    +

    + "C:\Program + Files\FreeFileSync\RealtimeSync.exe" + "C:\MyConfig.ffs_real"
    "C:\Program + Files\FreeFileSync\RealtimeSync.exe" "C:\SyncJob.ffs_batch"

    +
    +

    +
+


+

+


+

+

Example: +(Smart synchronization when USB +sticks are inserted into your PC - in combination with FreeFileSync)

+

Assume +you have multiple(!) USB sticks that contain data you want to +automatically synchronize in two-way mode whenever you insert one of +the sticks into the PC. In order to be on the safe side, you decide +to setup FreeFileSync batch jobs (*.ffs_batch) +using <Automatic> +mode so that conflicts, for example +files modified on both sides, are detected avoiding data loss. Save +the relevant configuration on each USB stick's root directory to have +it called when the stick is mounted. Then configure RealtimeSync +analog to the following:

+
    +

    +
+


+

+

Whenever +directory "H:\Data" +becomes available, the command-line executes and starts the batchjob +whose configuration is located on the stick. Furthermore it also +starts the batch job each time files are modified within "H:\Data". + +

+


+

+

For +additional convenience it might be nice if the batch job remains +silent if synchronization completes successfully, otherwise shows +FreeFileSync's GUI dialog when errors occurred. Therefore create two +configurations, one silent-mode batch to be called by default and one +*.ffs_gui to be called +when former fails. Then replace the command-line to simply execute a +batch file similar to this one:

    - C:\Program - Files\FreeFileSync\RealtimeSync.exe C:\MyConfig.ffs_real
    C:\Program - Files\FreeFileSync\RealtimeSync.exe C:\SyncJob.ffs_batch

    + ::first + check whether USB-stick contains a sync-configuration at all
    @if + exist "H:\Silent_Config.ffs_batch" (
    ::configuration + found, now execute the synchronization batch job
    "C:\Program + Files\FreeFileSync\FreeFileSync.exe" + "H:\Silent_Config.ffs_batch"
    @if not errorlevel 0 + (
    ::if + something went wrong, start FreeFileSync in GUI + mode
        "C:\Program + Files\FreeFileSync\FreeFileSync.exe" + "H:\GUI_Config.ffs_gui"
    )
    )


+


+

\ No newline at end of file diff --git a/BUILD/Help/html/advanced/RealtimeSync_html_72dda21b.gif b/BUILD/Help/html/advanced/RealtimeSync_html_72dda21b.gif deleted file mode 100644 index 9da1bc3f..00000000 Binary files a/BUILD/Help/html/advanced/RealtimeSync_html_72dda21b.gif and /dev/null differ diff --git a/BUILD/Help/html/advanced/ScheduleBatch.html b/BUILD/Help/html/advanced/ScheduleBatch.html index 4d1f3de0..bb956401 100644 --- a/BUILD/Help/html/advanced/ScheduleBatch.html +++ b/BUILD/Help/html/advanced/ScheduleBatch.html @@ -5,7 +5,7 @@ - +