git-annex/Annex
Joey Hess c35a9047d3
improve data types for sqlite
This is a non-backwards compatable change, so not suitable for merging
w/o a annex.version bump and transition code. Not yet tested.

This improves performance of git-annex benchmark --databases
across the board by 10-25%, since eg Key roundtrips as a ByteString.

(serializeKey' produces a lazy ByteString, so there is still a
copy involved in converting it to a strict ByteString. It may be faster
to switch to using bytestring-strict-builder.)

FilePath and Key are both stored as blobs. This avoids mojibake in some
situations. It would be possible to use varchar instead, if persistent
could avoid converting that to Text, but it seems there is no good
way to do so. See doc/todo/sqlite_database_improvements.mdwn

Eliminated some ugly artifacts of using Read/Show serialization;
constructors and quoted strings are no longer stored in sqlite.

Renamed SRef to SSha to reflect that it is only ever a git sha,
not a ref name. Since it is limited to the characters in a sha,
it is not affected by mojibake, so still uses String.
2019-10-29 17:05:36 -04:00
..
AdjustedBranch fix a typo that didn't matter so far 2019-09-27 14:08:16 -04:00
Branch make DropDead transition minimize remote.log for dead sameas remotes 2019-10-15 11:39:25 -04:00
Content preserve unlocked file mtime when dropping 2019-10-08 14:01:12 -04:00
LockPool update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
MetaData update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
SpecialRemote autoenable sameas remotes 2019-10-11 15:52:40 -04:00
View update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Action.hs make WorkerStage an open type 2019-06-19 13:05:03 -04:00
AdjustedBranch.hs remove unused function 2019-10-23 12:01:34 -04:00
AutoMerge.hs remove unused import 2019-08-28 15:38:29 -04:00
BloomFilter.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Branch.hs remove empty log files in transition 2019-10-14 16:04:15 -04:00
BranchState.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
CatFile.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
ChangedRefs.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
CheckAttr.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
CheckIgnore.hs Removed support for git versions older than 2.1 2019-09-11 16:14:43 -04:00
Common.hs finally really add back custom-setup stanza 2017-12-31 16:36:39 -04:00
Concurrent.hs refactor 2019-06-19 20:19:38 -04:00
Content.hs remove direct mode support from Annex.Content 2019-08-27 13:14:06 -04:00
CurrentBranch.hs refactor getCurrentBranch 2018-10-19 17:29:18 -04:00
Difference.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
DirHashes.hs correct license to AGPL 2019-08-17 14:08:07 -04:00
Drop.hs remove most remnants of direct mode 2019-08-26 16:27:48 -04:00
Environment.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Export.hs improve messages around export/import conflicts 2019-04-09 13:03:59 -04:00
FileMatcher.hs fix annex.largefiles largerthan/smallerthan bug 2019-09-30 17:15:08 -04:00
Fixup.hs Removed support for git versions older than 2.1 2019-09-11 16:14:43 -04:00
GitOverlay.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
HashObject.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Hook.hs update uninit to handle all the v7 stuff 2019-10-08 14:34:00 -04:00
Import.hs add RemoteStateHandle 2019-10-14 13:51:42 -04:00
Ingest.hs v7 for all repositories 2019-08-30 14:09:14 -04:00
Init.hs update uninit to handle all the v7 stuff 2019-10-08 14:34:00 -04:00
InodeSentinal.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Journal.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Link.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Locations.hs init: Fix a reversion that broke initialization on systems that need to use pid locking 2019-09-10 13:37:07 -04:00
LockFile.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
LockPool.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Magic.hs Added --mimetype and --mimeencoding file matching options. 2019-09-19 12:09:59 -04:00
MetaData.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Multicast.hs remove many old version ifdefs 2019-07-05 15:09:37 -04:00
Notification.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
NumCopies.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Path.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Perms.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Queue.hs Improved locking when multiple git-annex processes are writing to the .git/index file 2019-05-06 15:15:12 -04:00
RemoteTrackingBranch.hs fix setting imported tree 2019-05-06 14:38:02 -04:00
ReplaceFile.hs avoid build warning on Windows about unused import 2019-05-23 12:15:33 -04:00
SpecialRemote.hs autoenable sameas remotes 2019-10-11 15:52:40 -04:00
Ssh.hs annex.jobs=cpus etc 2019-05-10 13:27:08 -04:00
TaggedPush.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Tmp.hs init: Fix a reversion that broke initialization on systems that need to use pid locking 2019-09-10 13:37:07 -04:00
Transfer.hs use fine-grained WorkerStages when transferring and verifying 2019-06-19 13:24:20 -04:00
UpdateInstead.hs v7 for all repositories 2019-08-30 14:09:14 -04:00
Url.hs merge from http-client-restricted 2019-07-17 16:48:50 -04:00
UUID.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
VariantFile.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
VectorClock.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Version.hs one missed thing for automatic v5 -> v7 upgrades 2019-08-30 17:35:10 -04:00
View.hs fix edge case failure in prop_view_roundtrips 2019-08-16 11:35:32 -04:00
Wanted.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
WorkTree.hs improve data types for sqlite 2019-10-29 17:05:36 -04:00
YoutubeDl.hs rename annex.security.allowed-http-addresses 2019-05-30 12:43:40 -04:00