git-annex 10.20240227

git-annex allows managing files with git, without checking the file contents into git. While that may seem paradoxical, it is useful when dealing with files larger than git can currently easily handle, whether due to limitations in memory, checksumming time, or disk space. Even without file content tracking, being able to manage files with git, move files around and delete files with versioned directory trees, and use branches and distributed clones, are all very handy reasons to use git. And annexed files can co-exist in the same git repository with regularly versioned files, which is convenient for maintaining documents, Makefiles, etc that are associated with annexed files but that benefit from full revision control. When a file is annexed, its content is moved into a key-value store, and a symlink is made that points to the content. These symlinks are checked into git and versioned like regular files. You can move them around, delete them, and so on. Pushing to another git repository will make git-annex there aware of the annexed file, and it can be used to retrieve its content from the key-value store.

Tags git archive haskell
License Mixed
State stable

Recent Releases

10.2024022728 Feb 2024 10:25 minor feature: Importfeed: Added --scrape option, which uses yt-dlp to screen scrape. The equivilant of an RSS feed. Importfeed --force: Don't treat it as a failure when an already. Downloaded file exists. (a behavior change introduced in 10.20230626.). Importfeed --force: Avoid creating duplicates of existing. Already downloaded files when yt-dlp or a special remote was used. Addurl, importfeed: Added --raw-except option. Stack.yaml: Update to lts-22.9 and use crypton. Assistant, undo: When committing, let the usual git commit. Hooks run. Added annex.commitmessage-command config. Pre-commit: Avoid committing the git-annex branch. (except when a commit is made in a view, which changes metadata). Pass --no-warnings to yt-dlp. -- Joey Hess Tue, 27 Feb 2024 12:58:30 -0400.
10.2024012931 Jan 2024 02:05 minor feature: Info: Added "annex sizes of repositories" table to the overall display. Import: Sped up import from special remotes. Import: Added --message/-m option. Support using commands that implement the Stateless OpenPGP command line. Interface, as an alternative to gpg. Currently only supported for encryption=shared special remotes. When annex.shared-sop-command is configured. Test: Test a specified Stateless OpenPGP command when. Run with eg --test-git-config annex.shared-sop-command=sqop Improve disk free space checking when transferring unsized keys to. Local git remotes. Added configs annex.stalldetection-download, annex.stalldetection-upload. Annex.bwlimit-download, annex.bwlimit-upload, And similar per-remote configs. Improve annex.stalldetection to handle remotes that update progress. Less frequently than the configured time period. External: Monitor file size when getting content from external. Special remotes and use that to update the progress meter, in case the external special remote program does not report progress. Added --expected-present file matching option. Webapp: Added --port option, and annex.port config. Assistant: When generating a gpg secret key, avoid hardcoding the. Key algorithm and size. -- Joey Hess Mon, 29 Jan 2024 13:12:00 -0400.
10.2023122710 Jan 2024 17:50 minor feature: * migrate: Support distributed migrations by recording each migration, and adding a --update option that updates the local repository incrementally, hard linking annex objects to their new keys. * pull, sync: When operating on content, automatically handle distributed migrations. * Added annex.syncmigrations config that can be set to false to prevent pull and sync from migrating object content. * migrate: Added --apply option that (re)applies all recorded distributed migrations to the objects in repository. * migrate: Support adding size to URL keys that were added with --relaxed, by running eg: git-annex migrate --backend=URL foo * When importing from a special remote, support preferred content expressions that use terms that match on keys (eg "present", "copies=1"). Such terms are ignored when importing, since the key is not known yet. Before, such expressions caused the import to fail. * Support git-annex copy/move --from-anywhere --to remote. * Make git-annex get/copy/move --from foo override configuration of remote.foo.annex-ignore, as documented. * Lower precision of timestamps in git-annex branch, which can reduce the size of the branch by up to 8 . * sync: Fix locking problems during merge when annex.pidlock is set. * Avoid a problem with temp file names ending in "." on certian filesystems that have problems with such filenames. * sync, push: Avoid trying to send individual files to special remotes configured with importtree=yes exporttree=no, which would always fail. * Fix a crash opening sqlite databases when run in a non-unicode locale. (Needs persistent-sqlite 2.13.3.)
7.2019100917 Oct 2019 17:39 minor feature: