SHA256E is new default backend
The default backend used when adding files to the annex is changed from SHA256 to SHA256E, to simplify interoperability with OSX, media players, and various programs that needlessly look at symlink targets. To get old behavior, add a .gitattributes containing: * annex.backend=SHA256
This commit is contained in:
parent
6e08bf9633
commit
3724344461
4 changed files with 21 additions and 16 deletions
|
@ -1,4 +1,4 @@
|
||||||
{- git-annex SHA backend
|
{- git-annex SHA backends
|
||||||
-
|
-
|
||||||
- Copyright 2011,2012 Joey Hess <joey@kitenet.net>
|
- Copyright 2011,2012 Joey Hess <joey@kitenet.net>
|
||||||
-
|
-
|
||||||
|
@ -19,13 +19,14 @@ import qualified Data.ByteString.Lazy as L
|
||||||
|
|
||||||
type SHASize = Int
|
type SHASize = Int
|
||||||
|
|
||||||
-- order is slightly significant; want SHA256 first, and more general
|
{- Order is slightly significant; want SHA256 first, and more general
|
||||||
-- sizes earlier
|
- sizes earlier. -}
|
||||||
sizes :: [Int]
|
sizes :: [Int]
|
||||||
sizes = [256, 1, 512, 224, 384]
|
sizes = [256, 1, 512, 224, 384]
|
||||||
|
|
||||||
|
{- The SHA256E backend is the default. -}
|
||||||
backends :: [Backend]
|
backends :: [Backend]
|
||||||
backends = catMaybes $ map genBackend sizes ++ map genBackendE sizes
|
backends = catMaybes $ map genBackendE sizes ++ map genBackend sizes
|
||||||
|
|
||||||
genBackend :: SHASize -> Maybe Backend
|
genBackend :: SHASize -> Maybe Backend
|
||||||
genBackend size = Just $ Backend
|
genBackend size = Just $ Backend
|
||||||
|
|
4
debian/changelog
vendored
4
debian/changelog
vendored
|
@ -4,6 +4,10 @@ git-annex (3.20120826) UNRELEASED; urgency=low
|
||||||
as well as automatically syncing file contents between repositories.
|
as well as automatically syncing file contents between repositories.
|
||||||
* webapp: New command (and FreeDesktop menu item) that allows managing
|
* webapp: New command (and FreeDesktop menu item) that allows managing
|
||||||
and configuring the assistant in a web browser.
|
and configuring the assistant in a web browser.
|
||||||
|
* The default backend used when adding files to the annex is changed
|
||||||
|
from SHA256 to SHA256E, to simplify interoperability with OSX, media
|
||||||
|
players, and various programs that needlessly look at symlink targets.
|
||||||
|
To get old behavior, add a .gitattributes containing: * annex.backend=SHA256
|
||||||
* init: If no description is provided for a new repository, one will
|
* init: If no description is provided for a new repository, one will
|
||||||
automatically be generated, like "joey@gnu:~/foo"
|
automatically be generated, like "joey@gnu:~/foo"
|
||||||
* test: Set a lot of git environment variables so testing works in strange
|
* test: Set a lot of git environment variables so testing works in strange
|
||||||
|
|
|
@ -5,21 +5,21 @@ to retrieve the file's content (its value).
|
||||||
Multiple pluggable key-value backends are supported, and a single repository
|
Multiple pluggable key-value backends are supported, and a single repository
|
||||||
can use different ones for different files.
|
can use different ones for different files.
|
||||||
|
|
||||||
* `SHA256` -- The default backend for new files. This allows
|
* `SHA256E` -- The default backend for new files. This allows
|
||||||
verifying that the file content is right, and can avoid duplicates of
|
verifying that the file content is right, and can avoid duplicates of
|
||||||
files with the same content. Its need to generate checksums
|
files with the same content. Its need to generate checksums
|
||||||
can make it slower for large files.
|
can make it slower for large files.
|
||||||
|
* `SHA256` -- Does not include the file extension in the key, which can
|
||||||
|
lead to better deduplication.
|
||||||
* `WORM` ("Write Once, Read Many") This assumes that any file with
|
* `WORM` ("Write Once, Read Many") This assumes that any file with
|
||||||
the same basename, size, and modification time has the same content.
|
the same basename, size, and modification time has the same content.
|
||||||
This is the the least expensive backend, recommended for really large
|
This is the the least expensive backend, recommended for really large
|
||||||
files or slow systems.
|
files or slow systems.
|
||||||
* `SHA512` -- Best currently available hash, for the very paranoid.
|
* `SHA512`, `SHA512E` -- Best currently available hash, for the very paranoid.
|
||||||
* `SHA1` -- Smaller hash than `SHA256` for those who want a checksum
|
* `SHA1`, `SHA1E` -- Smaller hash than `SHA256` for those who want a checksum
|
||||||
but are not concerned about security.
|
but are not concerned about security.
|
||||||
* `SHA384`, `SHA224` -- Hashes for people who like unusual sizes.
|
* `SHA384`, `SHA384E`, `SHA224`, `SHA224E` -- Hashes for people who like
|
||||||
* `SHA256E`, `SHA1E`, etc -- Variants that preserve filename extension as
|
unusual sizes.
|
||||||
part of the key. Useful for archival tasks where the filename extension
|
|
||||||
contains metadata that should be preserved.
|
|
||||||
|
|
||||||
The `annex.backends` git-config setting can be used to list the backends
|
The `annex.backends` git-config setting can be used to list the backends
|
||||||
git-annex should use. The first one listed will be used by default when
|
git-annex should use. The first one listed will be used by default when
|
||||||
|
@ -29,11 +29,11 @@ For finer control of what backend is used when adding different types of
|
||||||
files, the `.gitattributes` file can be used. The `annex.backend`
|
files, the `.gitattributes` file can be used. The `annex.backend`
|
||||||
attribute can be set to the name of the backend to use for matching files.
|
attribute can be set to the name of the backend to use for matching files.
|
||||||
|
|
||||||
For example, to use the SHA256 backend for sound files, which tend to be
|
For example, to use the SHA256E backend for sound files, which tend to be
|
||||||
smallish and might be modified or copied over time,
|
smallish and might be modified or copied over time,
|
||||||
while using the WORM backend for everything else, you could set
|
while using the WORM backend for everything else, you could set
|
||||||
in `.gitattributes`:
|
in `.gitattributes`:
|
||||||
|
|
||||||
* annex.backend=WORM
|
* annex.backend=WORM
|
||||||
*.mp3 annex.backend=SHA256
|
*.mp3 annex.backend=SHA256E
|
||||||
*.ogg annex.backend=SHA256
|
*.ogg annex.backend=SHA256E
|
||||||
|
|
|
@ -801,10 +801,10 @@ The key-value backend used when adding a new file to the annex can be
|
||||||
configured on a per-file-type basis via `.gitattributes` files. In the file,
|
configured on a per-file-type basis via `.gitattributes` files. In the file,
|
||||||
the `annex.backend` attribute can be set to the name of the backend to
|
the `annex.backend` attribute can be set to the name of the backend to
|
||||||
use. For example, this here's how to use the WORM backend by default,
|
use. For example, this here's how to use the WORM backend by default,
|
||||||
but the SHA1 backend for ogg files:
|
but the SHA256E backend for ogg files:
|
||||||
|
|
||||||
* annex.backend=WORM
|
* annex.backend=WORM
|
||||||
*.ogg annex.backend=SHA1
|
*.ogg annex.backend=SHA256E
|
||||||
|
|
||||||
The numcopies setting can also be configured on a per-file-type basis via
|
The numcopies setting can also be configured on a per-file-type basis via
|
||||||
the `annex.numcopies` attribute in `.gitattributes` files.
|
the `annex.numcopies` attribute in `.gitattributes` files.
|
||||||
|
|
Loading…
Reference in a new issue