#19021: collectstatic should support checksums as method to determine a file's
changed state
-------------------------------+---------------------------------------
     Reporter:  dloewenherz    |                    Owner:  dloewenherz
         Type:  New feature    |                   Status:  closed
    Component:  Uncategorized  |                  Version:  1.4
     Severity:  Normal         |               Resolution:  wontfix
     Keywords:                 |             Triage Stage:  Unreviewed
    Has patch:  0              |      Needs documentation:  0
  Needs tests:  0              |  Patch needs improvement:  0
Easy pickings:  0              |                    UI/UX:  0
-------------------------------+---------------------------------------
Changes (by ptone):

 * status:  reopened => closed
 * resolution:   => wontfix


Comment:

 In an ideal world - checksums would be an perfectly viable way to compare
 files
 for collectstatic. However, practically - they can't be well supported by
 the
 collectstatic API.

 While md5 may be somewhat common - it is neither universal nor standard.
 For
 cloud based storage backends to support a comparison metric other than
 modification times for use by collectstatic, they would need to provide
 that
 value as a remote/api call, it would do no good if the only way to support
 this involved retrieving the remote object to get a hash on it (even if
 you had
 drastically asymetrical bandwidth - this is just poor design).

 Checksums have a compute cost that modification dates don't - so a
 checksum
 comparison would always need to be an alternate, not the primary
 comparison.

 Without a good universal way for a range of storage backends to provide
 some
 sort of fingerprint/hash - there is no good way for collectstatic to take
 advantage of that approach.

 In cases where your modification dates are rendered invalid because of
 some
 specific environment set up (like the git based team issue), there are a
 couple
 workarounds. Perhaps the best is to use collectstatic locally - where the
 performance of copying every file isn't as bad, and then use a sync tool
 (such as rsync --checksum) or something home built that can do the
 checksum
 based comparison knowing the specific remote storage you are working with
 in
 your project.

 A couple other links that might prove useful for those working with git
 (provided without endorsement or review)

 http://gitorious.org/sstamp

 http://repo.or.cz/w/metastore.git

-- 
Ticket URL: <https://code.djangoproject.com/ticket/19021#comment:7>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to