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 a673fc7cfd
recompute: stage new version of file in git
When writing doc/tips/computing_annexed_files.mdwn, I noticed
that a recompute --reproducible followed by a drop and a re-get did not
actually test if the file could be reproducible computed again.

Turns out that get and drop both operate on staged files. If there is an
unstaged modification in the work tree, that's ignored. Somewhat
surprisingly, other commands like info do operate on staged files. So
behavior is inconsistent, and fairly surprising really, when there are
unstaged modifications to files.

Probably this is rarely noticed because `git-annex add` is used to add a
new version of a file, and then it's staged. Or `git mv` is used to move
a file, rather than `mv` of a file over top of an existing file. So it's
uncommon to have an unstaged annexed file in a worktree.

It might be worth making things more consistent, but that's out of scope
for what I'm working on currently.

Also, I anticipate that supporting unlocked files with recompute will
require it to stage changes anyway.

So, make recompute stage the new version of the file.

I considered having recompute refuse to overwrite an existing staged
file. After all, whatever version was staged before will get lost when
the new version is staged over top of it. But, that's no different than
`git-annex addcomputed` being run with the name of an existing staged
file. Or `git-annex add` being run with a new file content when there is
an existing staged file. Or, for that matter, `git add` being ran with a
new content when there is an existing staged file.
2025-03-12 13:42:00 -04:00
Annex Merge branch 'compute' 2025-03-06 14:23:58 -04:00
Assistant OSX build fix 2025-02-17 14:06:06 -04:00
Backend refactor 2025-02-27 16:17:42 -04:00
Build OsPath conversion for OSXMkLibs 2025-02-14 16:53:00 -04:00
CmdLine started git-annex recompute 2025-02-26 11:54:09 -04:00
Command recompute: stage new version of file in git 2025-03-12 13:42:00 -04:00
Config bring back OsPath changes 2025-01-30 14:34:21 -04:00
Database more OsPath conversion 2025-02-11 14:03:20 -04:00
debian Refresh standlone patch to avoid fuzz and offsets 2024-08-06 16:39:48 -04:00
doc recompute: stage new version of file in git 2025-03-12 13:42:00 -04:00
Git support git files as input to computations 2025-03-03 12:09:25 -04:00
Limit treat "not present" in preferred content as invalid 2024-09-03 13:50:06 -04:00
Logs record VURL key hashes in addcomputed and recompute 2025-03-03 10:57:56 -04:00
Messages more OsPath conversion (602/749) 2025-02-07 14:46:11 -04:00
P2P remove unused adjustedBranchRefresh associated file parameter 2025-02-21 14:51:02 -04:00
Remote buffer responses to compute programs in a TQueue 2025-03-11 12:40:21 -04:00
RemoteDaemon more OsPath conversion (502/749) 2025-02-05 13:29:58 -04:00
standalone Fix installation on Android 2025-01-07 14:13:46 -04:00
static Revert "remove newlines from static js and css" 2014-06-13 02:20:39 -04:00
templates assistant: When generating a gpg secret key, avoid hardcoding the key algorithm and size 2024-01-09 15:31:53 -04:00
Test more OsPath conversion (602/749) 2025-02-07 14:46:11 -04:00
Types rename config to annex.security.allowed-compute-programs 2025-03-03 16:12:03 -04:00
Upgrade remove unused adjustedBranchRefresh associated file parameter 2025-02-21 14:51:02 -04:00
Utility compute: add response to OUTPUT 2025-03-07 14:47:34 -04:00
.appveyor.yml update appveyor cache directory 2025-01-30 15:02:59 -04:00
.codespellrc A few more of typo fixes/skip as detected with bleeding edge codespell 2024-05-01 20:06:08 -04:00
.ghci turn of PackageImports in cabal file 2022-02-25 13:16:36 -04:00
.gitattributes update changelog location 2016-08-22 23:54:11 -04:00
.gitignore remove the git-union-merge command 2025-02-12 12:37:36 -04:00
.mailmap ENH: add one more mailmap for yarikoptic 2024-06-03 13:00:45 -04:00
Annex.hs more OsPath conversion 2025-02-01 14:06:38 -04:00
Assistant.hs OsPath transition Windows build fixes 2025-02-11 15:40:53 -04:00
Author.hs improve attribution armoring 2023-11-21 11:34:21 -04:00
Backend.hs refactoring 2025-02-27 14:54:03 -04:00
bash-completion.bash bash completion fix 2018-11-12 13:23:05 -04:00
Benchmark.hs --size-limit exit 101 2021-06-04 16:43:47 -04:00
BuildFlags.hs update servant build flag 2024-07-23 08:53:56 -04:00
BuildInfo.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
CHANGELOG preparing to merge compute 2025-03-06 14:22:45 -04:00
CmdLine.hs more OsPath conversion (639/749) 2025-02-07 16:07:05 -04:00
Command.hs more OsPath conversion (542/749) 2025-02-06 11:38:14 -04:00
Common.hs bring back OsPath changes 2025-01-30 14:34:21 -04:00
Config.hs more OsPath conversion 2025-01-29 11:53:20 -04:00
COPYRIGHT added git-annex-compute-singularity 2025-03-10 16:41:26 -04:00
Creds.hs more OsPath conversion 2025-02-04 16:09:47 -04:00
Crypto.hs bring back OsPath changes 2025-01-30 14:34:21 -04:00
git-annex.cabal factor out Annex.GitShaKey 2025-03-03 11:09:28 -04:00
git-annex.hs git-remote-annex: Fix buggy behavior when annex.stalldetection is configured 2024-11-25 12:14:52 -04:00
Git.hs more OsPath conversion 2025-01-24 16:31:14 -04:00
Key.hs more OsPath conversion 2025-01-28 15:46:00 -04:00
Limit.hs more OsPath conversion (520/749) 2025-02-05 15:07:59 -04:00
Logs.hs more OsPath conversion 2025-01-28 16:31:19 -04:00
Makefile remove the git-union-merge command 2025-02-12 12:37:36 -04:00
Messages.hs more OsPath conversion 2025-01-28 15:46:00 -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 compute remote: get input files from other remotes 2025-03-04 11:06:58 -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.yaml git-lfs apiurl parameter 2025-02-18 14:11:21 -04:00
Test.hs OsPath build fix 2025-02-17 14:56:56 -04:00
Types.hs plumb VerifyConfig into retrieveKeyFile 2021-08-17 12:43:13 -04:00
Upgrade.hs more OsPath conversion (464/749) 2025-02-04 13:35:17 -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/>