The long algorithm must be among available_hash_algos{}
,
which is just the collection of algorithms available to the algo
argument in digest::digest()
.
If you express no preference for a hash, drake will use
the long hash for the existing project, or
default_long_hash_algo()
for a new project.
If you do supply a hash algorithm, it will only apply to
fresh projects (see clean(destroy = TRUE)
).
For a project that already exists, if you supply a hash algorithm,
drake will warn you and then ignore your choice, opting instead for
the hash algorithm already chosen for the project
in a previous make()
.
Drake uses both a short hash algorithm
and a long hash algorithm. The shorter hash has fewer characters,
and it is used to generate the names of internal cache files
and auxiliary files. The decision for short names is important
because Windows places restrictions on the length of file paths.
On the other hand, some internal hashes in drake are
never used as file names, and those hashes can use a longer hash
to avoid collisions.