<commit_before>Perhaps make Md5sum() and Modtime() optional.  Define the zero values
"" and 0. Make it so we can support remotes which can't do those.

Fix the docs
  * factor the README.md into the docs directory
  * create it as part of make by assembling other parts
  * write long docs about each flag

Change lsd command so it doesn't show -1
  * Make sure all Fses show -1 for objects Zero for dates etc
  * Make test?

Put the TestRemote names into the Fs description
Make test_all.sh use the TestRemote name automatically

Run errcheck and go vet in the make file
.. Also race detector?
.. go tool vet -shadow

Get rid of Storable?

Write developer manual

Todo
  * FIXME: More -dry-run checks for object transfer
  * Might be quicker to check md5sums first? for swift <-> swift certainly, and maybe for small files
  * swift: Ignoring the pseudo directories
    * if object.PseudoDirectory {
      * fmt.Printf("%9s %19s %s\n", "Directory", "-", fs.Remote())
  * Make Account wrapper
    * make Account do progress meter
  * -timeout: Make all timeouts be settable with command line parameters
  * Add max object size to fs metadata - 5GB for swift, infinite for local, ? for s3
    * tie into -max-size flag
  * FIXME Make NewFs to return err.IsAnObject so can put the LimitedFs
    creation in common code? Or try for as much as possible?
  * FIXME Account all the transactons (ls etc) using a different
    Roundtripper wrapper which wraps the transactions?

More rsync features
  * include
  * exclude
  * max size
  * -c, --checksum              skip based on checksum, not mod-time & size

Ideas for flags
  * --retries N flag which would make rclone retry a sync until successful or it tried N times.

Ideas
  * could do encryption - put IV into metadata?
  * optimise remote copy container to another container using remote
    copy if local is same as remote - use an optional Copier interface
  * support
      * sftp
      * scp
      * rsync over ssh
  * control times sync (which is slow with some remotes) with -a --archive flag?
  * Copy a glob pattern - could do with LimitedFs

Bugs
  * Non verbose - not sure number transferred got counted up? CHECK
  * When doing copy it recurses the whole of the destination FS which isn't necessary<commit_msg>More notes<commit_after>Perhaps make Md5sum() and Modtime() optional.  Define the zero values
"" and 0. Make it so we can support remotes which can't do those.

Fix the docs
  * factor the README.md into the docs directory
  * create it as part of make by assembling other parts
  * write long docs about each flag

Change lsd command so it doesn't show -1
  * Make sure all Fses show -1 for objects Zero for dates etc
  * Make test?

Put the TestRemote names into the Fs description
Make test_all.sh use the TestRemote name automatically

Run errcheck and go vet in the make file
.. Also race detector?
.. go tool vet -shadow

Get rid of Storable?

Write developer manual

Todo
  * FIXME: More -dry-run checks for object transfer
  * Might be quicker to check md5sums first? for swift <-> swift certainly, and maybe for small files
  * swift: Ignoring the pseudo directories
    * if object.PseudoDirectory {
      * fmt.Printf("%9s %19s %s\n", "Directory", "-", fs.Remote())
  * Make Account wrapper
    * make Account do progress meter
  * -timeout: Make all timeouts be settable with command line parameters
  * Add max object size to fs metadata - 5GB for swift, infinite for local, ? for s3
    * tie into -max-size flag
  * FIXME Make NewFs to return err.IsAnObject so can put the LimitedFs
    creation in common code? Or try for as much as possible?
  * FIXME Account all the transactons (ls etc) using a different
    Roundtripper wrapper which wraps the transactions?

More rsync features
  * include
  * exclude
  * max size
  * -c, --checksum              skip based on checksum, not mod-time & size

Ideas for flags
  * --retries N flag which would make rclone retry a sync until successful or it tried N times.

Ideas
  * could do encryption - put IV into metadata?
  * optimise remote copy container to another container using remote
    copy if local is same as remote - use an optional Copier interface
  * support
      * sftp
      * scp
      * rsync over ssh
  * control times sync (which is slow with some remotes) with -a --archive flag?
  * Copy a glob pattern - could do with LimitedFs

Make an encryption layer.

This would layer over the source FS to
    * decrypt all gets
    * encrypt all puts
    * encrypt file names in list
    * decrypt them in list

Would like to be able to see unencrypted file names in remote though? How?  Or is that two encryption layers..?

Bugs
  * Non verbose - not sure number transferred got counted up? CHECK
  * When doing copy it recurses the whole of the destination FS which isn't necessary
{'fraction_non_alphanumeric': 0.05423307803767336, 'fraction_numerical': 0.004139929621196439, 'mean_word_length': 3.1583476764199654, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5055071', 'n_tokens_mistral': 1356, 'n_tokens_neox': 1306, 'n_words': 721}