The “--delete” command and the Force Case feature

Use this combination of features with caution. Misconfiguration of your system may have undesired results.

NetStorage’s Force Case functionality only affects individual file lookup and creation, not file enumeration (that is, any call that results in a list.) An end user’s file requests are converted to the desired case, as are uploaded file names. However, Force Case will likely behave unexpectedly if used with Rsync's --delete option. This option removes files from the destination directories being synchronized if they are no longer present on the source.

For example, if you enable Force Case to force file names to lowercase, your initial upload of a local file called TextFile.txt creates a file called textfile.txt at the destination. When you attempt a new Rsync operation using the --delete option, your client notes that it does not have a local file named textfile.txt and directs the server to delete it at the destination. Your client then uploads the local file TextFile.txt, which the server subsequently renames to textfile.txt.

Two work-around options are currently available:

  • Do not use the --delete option. Instead, use Rsync to update any changed files first. Then perform a local scan for deleted files and use CMShell or another mechanism to delete those files from NetStorage.
  • Rename all local files to match your Force Case settings. In this case, --delete will work as expected.