CI to automate build of cargo lockfiles on different Alpine releases for git-annex aports https://gitlab.alpinelinux.org/alpine/aports/-/tree/master/community/git-annex
Find a file
Joey Hess eb59da9dd2
Lower precision of timestamps in git-annex branch
This can reduce the size of the branch by up to 8%. My test was
running git-annex add 1000 times on one file each.
Lots of different high-resolution timestamps were recorded before
and eliminating those, after packing, the git repo was 8% smaller.

Due to the use of vector clocks, high resolution timestamps are
not necessary to make clear which information is most recent when
eg, a value is changed repeatedly in the same second. In such a
case, the vector clock will be advanced to the next second after
the last modification. For example, running
git-annex numcopies 1; git-annex numcopies 2
The first will record the current second, while the next records
the second after that even if it runs in the same second.

As for conflicting information written to two different clones of the
repository, this will make git-annex sometimes pick information that
was written earlier in a second over information written later in the
same second. Usually git-annex does not write conflicting information,
but there are some cases where it could. Eg, storing an object on a remote
can update the remote state log with some state. If two repos both store the
same object, and end up storing different remote state for some reason,
this can result in one that ran a tiny bit later winning. Such a situation
seems unlikely to be user visible. And a small amount of clock skew could
already result in such things.

The only case I can think of where this might be a user visible change
is if a configuration command like git-annex numcopies is being run
in 2 clones of a repository on the same machine at very
close to the same time. Then the user will know which they ran last,
and git-annex won't.

If that did become a problem, this could be dialed back to eg log
milliseconds with still some space saving.
2023-12-11 15:04:06 -04:00
Annex Lower precision of timestamps in git-annex branch 2023-12-11 15:04:06 -04:00
Assistant fix --from overriding annex-ignore 2023-11-30 15:12:07 -04:00
Backend filter out control characters in all other Messages 2023-04-11 12:58:01 -04:00
Build use unshorted hash in version 2023-09-20 09:31:59 -04:00
CmdLine log migration trees to git-annex branch 2023-12-06 15:40:03 -04:00
Command migrate: support adding size back to URL keys 2023-12-08 16:22:14 -04:00
Config use status --ignore-submodules in configureSmudgeFilter 2022-12-20 16:02:42 -04:00
Database avoid unused import 2023-10-26 14:00:21 -04:00
debian Removed the vendored git-lfs and the GitLfs build flag 2023-08-28 13:12:31 -04:00
doc migrate: support adding size back to URL keys 2023-12-08 16:22:14 -04:00
Git migrate --update gets keys 2023-12-07 17:25:56 -04:00
Limit initial implementation of --explain 2023-07-25 16:52:57 -04:00
Logs migrate --apply 2023-12-08 13:23:46 -04:00
Messages factor out maybeAddJSONField 2023-05-08 16:15:41 -04:00
P2P filter out control characters in error messages 2023-04-10 13:50:51 -04:00
Remote convert StorableCipher to ByteString 2023-11-01 14:39:49 -04:00
RemoteDaemon remove unused import 2023-08-28 12:35:57 -04:00
standalone enable parallel ghc for building git-annex 2023-09-26 13:46:44 -04:00
static
templates Apply codespell -w throughout 2023-03-17 15:14:58 -04:00
Test display summary after concurrent output is complete 2023-10-26 14:19:41 -04:00
Types distributed migration for pull and sync --content 2023-12-08 14:18:18 -04:00
Upgrade filter out control characters in all other Messages 2023-04-11 12:58:01 -04:00
Utility Lower precision of timestamps in git-annex branch 2023-12-11 15:04:06 -04:00
.appveyor.yml windows back to lts-18.13 temporarily 2023-08-02 12:49:38 -04:00
.codespellrc keyspell ignore tmp directory 2023-03-17 15:21:31 -04:00
.ghci turn of PackageImports in cabal file 2022-02-25 13:16:36 -04:00
.gitattributes
.gitignore ignore git-annex-build-deps files from dpkg-genbuilddeps 2023-01-29 11:29:51 -04:00
.mailmap
Annex.hs initial implementation of --explain 2023-07-25 16:52:57 -04:00
Assistant.hs assistant: Fix a crash on startup by avoiding using forkProcess 2021-05-12 15:08:03 -04:00
Author.hs improve attribution armoring 2023-11-21 11:34:21 -04:00
Backend.hs filter out control characters in warning messages 2023-04-10 15:55:44 -04:00
bash-completion.bash
Benchmark.hs --size-limit exit 101 2021-06-04 16:43:47 -04:00
BuildFlags.hs Support being built with crypton rather than cryptonite 2023-09-21 12:43:42 -04:00
BuildInfo.hs
CHANGELOG Lower precision of timestamps in git-annex branch 2023-12-11 15:04:06 -04:00
CmdLine.hs Adapt code to optparse-applicative 0.18.1 and later. 2023-06-21 11:51:04 -04:00
Command.hs uninit: Support --json and --json-error-messages 2023-05-11 13:43:02 -04:00
Common.hs Windows: Support long filenames in more (possibly all) of the code 2023-03-01 15:55:58 -04:00
Config.hs added an optional cost= configuration to all special remotes 2023-01-12 13:42:28 -04:00
COPYRIGHT Removed the vendored git-lfs and the GitLfs build flag 2023-08-28 13:12:31 -04:00
Creds.hs simplify base64 to only use ByteString 2023-10-26 13:10:05 -04:00
Crypto.hs convert StorableCipher to ByteString 2023-11-01 14:39:49 -04:00
git-annex.cabal log migration trees to git-annex branch 2023-12-06 15:40:03 -04:00
git-annex.hs sanitize control characters in main thread fatal exceptions 2023-04-12 14:21:53 -04:00
git-union-merge.hs
Git.hs filter out control characters in error messages 2023-04-10 13:50:51 -04:00
Key.hs convert Key to ShortByteString 2021-10-05 20:20:08 -04:00
Limit.hs Fix behavior of onlyingroup 2023-08-07 13:05:11 -04:00
Logs.hs log migration trees to git-annex branch 2023-12-06 15:40:03 -04:00
Makefile remove vim dev hack 2023-10-20 12:50:31 -04:00
Messages.hs Windows: Consistently avoid ending output lines with CR 2023-10-30 14:43:43 -04:00
NEWS prep release 2023-06-26 10:41:36 -04:00
README improve description 2022-01-06 12:24:27 -04:00
Remote.hs fix --from overriding annex-ignore 2023-11-30 15:12:07 -04:00
Setup.hs Setup.hs: Stop installing man pages, desktop files, and the git-annex-shell and git-remote-tor-annex symlinks 2023-08-01 15:08:56 -04:00
stack-lts-18.13.yaml enable parallel ghc for building git-annex 2023-09-26 13:46:44 -04:00
stack.yaml enable parallel ghc for building git-annex 2023-09-26 13:46:44 -04:00
Test.hs simplify base64 to only use ByteString 2023-10-26 13:10:05 -04:00
Types.hs plumb VerifyConfig into retrieveKeyFile 2021-08-17 12:43:13 -04:00
Upgrade.hs don't say a supported version is unsupported 2023-10-09 14:26:24 -04:00

git-annex allows managing large files with git, without storing the file
contents in git. It can sync, backup, and archive your data, offline
and online. Checksums and encryption keep your data safe and secure. Bring
the power and distributed nature of git to bear on your large files with
git-annex.

For documentation, see doc/ or <https://git-annex.branchable.com/>