Sync Pairs (or maybe Sync Queues or Copy Queues)

SUBMITTED TO GPSoftware:

------------------------------------------------------------- Tracking Number: 330012336664 Support Issue: Program Suggestion Submission Date: 5/3/2006 10:07:36 AM -------------------------------------------------------------This has already been logged with GPSoftware, it is posted here for other users to be aware of and to invite them to add their support and insight to.

ISSUE:
Improve the Directory Opus Synchronize Utility so as to be able to automate it more, and streamline the user's synchronization work flow.

BACKGROUND

[quote="The Authors of the Directory Opus Manual"]Copy UPDATEALL and UPDATEEXISTING Commands
Directory Opus provides two different methods for Synchronizing folders. The first is a simple mechanism which uses the predefined commands UPDATEALL and UPDATEEXISTING. This method does not provide a visual display and is designed as a powerful and quick system to update web sites and remote (or local) folders frequently. If you
wish you can easily create one or more special buttons to initiate the synchronization process for different situations.
...
Visual Synchronize
Whereas the above mechanism provides basic synchronization functionality using the Copy Update command, Directory Opus 8 also has a full visual file synchronization function. It operates in a dual-file display Lister, lets you synchronize either in one direction only or both directions, and lets you see what changes are going to be made before they happen.
Synchronize is accessed from the default Tools menu, and appears in the Utility Panel inside the Lister itself.[/quote]
The Copy UPDATEALL and UPDATEEXISTING commands above offer speed and automation (through using customized buttons); however, they lack many of the more detailed options of the Synchronize utility, which are required in many scenarios to ensure Opus synchronizes how the user wants it to.

On the other hand, the Synchronize Utility offers greater control, but no way to automate the process of synchronizing two folders—it's a completely manual process. The only portion of which can be automated is that the user may save a Lister Style or Lister Layout that will open up the two folders to be synchronized. After that, the rest of the process is entirely manual, and offers several opportunities for human error. Furthermore, there is no Raw command support for these operations.

Saving a Lister Layout or a Lister Style for each folder pair doesn't help much, because the real work is keeping track of the different synchronize options each folder pair relationship may require. Each time the Synchronize Utility Panel is used, it starts off with the parameters of the previous Synchronize operation, which may or may not be suitable for the new operation.

ISSUE TYPE:
This is an enhancement request.

SUGGESTIONS:
There are several suggestions in this request, which should be taken as a web to tackle the issue above. For now I'm going to call this feature "Sync Pairs" since I believe this name most accurately embodies the desired requirements.[ol][li] There should be a Sync Pairs Preferences Section, that would be very similar to the current FTP Preferences Section, allowing the user to add, configure, or delete Sync Pairs.[/li]
[li] A Sync Pair itself is really a relationship that consists of:[ol][li] A unique identifier (numeric, alphabetic, or alphanumeric) that is generated internally by Directory Opus. This identifier must be unique on the PC on which Directory Opus is installed.[/li]
[li] A Descriptive Name, which is entered in by the user, and must be unique within that user's Sync Pair List.[/li]
[li] A "source" folder[/li]
[li] A "destination" folder
NOTE: The specified folders could be local drives, Network folders (either mapped networked drives or UNC paths), FTP folders, a discrete .zip archive file (which Directory Opus treats as a folder), or even a specific removable media volume name.[/li]
[li] The synchronize relationship between the two folders. Don't get too married to the words "source" and "destination". The actual relationship between the two folders gets more complicated than this. In some cases the "source" and "destination" folders are involved in a two-way synchronize operation where they both are source and destination. In addition other synchronize software solutions identify different types of Source and Destination folders (e.g. subscriber, contributor, mirror, archive, etc). This is really just naming the type of Synchronize relationship between the two designated folders.[/li]
[li] All the related Synchronize Utility options that will be used in the operation. That means that each Sync Pair would contain 100% of the options that could be specified manually by the user in the Synchronize Utility.[/li]
[li] An optional specified schedule for the execution of the Synchronize operation between the two folders. This schedule would create a Windows Scheduled Task for the operation to run automatically. Using the Windows Task Scheduler allows the user to configure this task to run as often as every minute or weeks apart. Furthermore, it allows the user to contingently handle scenarios such as when the PC is in use (and such a synchronize task may degrade system performance), or running on batteries (would be risky), etc.[/li][/ol][/li][li] Full Raw command support for the Synchronize Utility, and full support using Sync Pairs.[/li]
[li] Adding a FORCE option to the Synchronize Utility Panel, and a corresponding argument to the related raw command to stop prompting the user to overwrite existing or read-only files.[/li][li] Change the Synchronize progress dialog to function more like the Copy progress dialog[ol][li] The progress dialog is separate from the underlying lister that launched the operation, so that the underlying lister can be closed.[/li]
[li] The progress dialog can be minimized, without it stealing the system focus.[/li][/ol][/li][li] Preferences Import and Export support for Sync Pairs.[/li]
[li]Identify folders that are part of a Sync Pair assignment by listing them with a customized text and background color (like compressed, encrypted, a favorite folders).[/li]
[li] Add a feature where the user could right-click on the folder that is part of a Sync Pair and select a command to execute any of the associated "sync pair" operations that the folder is a member of.[/li][/ol]For example a web developer supports several companies: Tooth Decay Soft Drinks, Obesity Junk Foods, Global Warming Chemical Corp, etc. He has several copies of each web project:[ul][li] Development - the folder storing files for the next version he's working on.[/li]
[li] Testing - the folder storing files he's testing.[/li]
[li] User Acceptance Testing - the web folder storing files for the customer to try out the new web site.[/li]
[li] Production - a local copy of the current production web site.[/li]
[li] Customer Site. The FTP site the production files are copied to in order to publish them on the World Wide Web.[/li]
[li] One (or several) archived folders of previous versions. These could be .zip files.[/li]
[li] Also consider that each environment above contains a graphics subfolder that stores the button images, logos, etc for each web project.[/li][/ul]Between any two environments above, their folders will need to be synchronized; some folders may get synchronized differently than others. In most cases, the developer may only want to sync all newer files, deleting obsolete files that are no longer used (e.g. .html documents). However the image folders are different—a comprehensive list of web site images take time to develop. The developer would want to add newer files to this folder, but not delete existing images for which there is no newer version. This is because the older image is still good.

So for each web project, the web developer creates Sync Pairs between all the folders he would routinely synchronize, gives them meaningful unique names, configures the specific options for each sync pair. Then if this web developer supports hundreds of web projects, all can be easily managed. As each Sync Pair stores its own Synchronize parameters, it could be launched from the Preferences section, or a context menu click.

With the addition of Raw command support, comes Windows Command Line support using dopusrt.exe, which now permits the web developer to queue several synchronize operations between different sync pairs.

With the Windows Task Scheduler interface, the web developer could schedule these folder synchronizations during off-peak computer use times.

RATIONALE:
It is reasonable (and intuitive) for users to want to use all of the advanced options of the Synchronize Utility, with the speed and automation of the Copy commands. These suggestions above help to bridge the strengths of each of the current options.

The requested features are well within the realm of File Management. Furthermore, they are consistent with features already included in Directory Opus. These features offer huge gains in user productivity.

Some of these features exist in competing products, but not in Directory Opus. Adding such features will allow Directory Opus to remain the top contending File Management solution.