Recent comments posted to this site:

Download with the git-annex-install script fail
Downloading git-annex...
--2025-08-24 12:49:08--  https://downloads.kitenet.net/git-annex/linux/current/git-annex-standalone-arm64-ancient.tar.gz
Resolving downloads.kitenet.net (downloads.kitenet.net)... 66.228.36.95, 2600:3c03::f03c:91ff:fe73:b0d2
Connecting to downloads.kitenet.net (downloads.kitenet.net)|66.228.36.95|:443... connected.
HTTP request sent, awaiting response... 403 Forbidden
2025-08-24 12:49:09 ERROR 403: Forbidden.

The Download with the git-annex-install script fail, I guess because the build is failed. see: https://downloads.kitenet.net/git-annex/autobuild/arm64-ancient/

enableremote encryption changes: FAIL (0.73s)
./Test/Framework.hs:92:
initremote failed with unexpected exit code (transcript follows)
initremote baz
git-annex: There is no security benefit to using onlyencryptcreds=yes with encryption=shared
failed
initremote: 1 failed

It would be grate if you could fix that. Thanks in advance.

Comment by waldi1985
comment 9

3x more allocations now than before. This is probably due to the switch to OsPath, which means extra copying from ByteString.

    Thu Aug 21 20:18 2025 Time and Allocation Profiling Report  (Final)

       git-annex +RTS -p -RTS find

    total time  =        0.99 secs   (989 ticks @ 1000 us, 1 processor)
    total alloc = 1,514,545,208 bytes  (excludes profiling overheads)

COST CENTRE                        MODULE                         SRC                                                 %time %alloc

keyFile                            Annex.Locations                Annex/Locations.hs:(790,1)-(806,44)                   7.1   12.9
>>=.\                              Data.Attoparsec.Internal.Types Data/Attoparsec/Internal/Types.hs:(148,9)-(149,44)    6.9    2.4
>>=.\.succ'                        Data.Attoparsec.Internal.Types Data/Attoparsec/Internal/Types.hs:148:13-76           5.6    0.7
keyFile.esc                        Annex.Locations                Annex/Locations.hs:(796,9)-(801,32)                   5.3   10.7
ifM                                Utility.Monad                  Utility/Monad.hs:(62,1)-(64,44)                       5.1    8.7
ifM.\                              Utility.Monad                  Utility/Monad.hs:64:9-44                              3.5    8.6
hashUpdates.processBlocks          Crypto.Hash                    Crypto/Hash.hs:(103,5)-(112,76)                       3.1    0.3
inAnnex'.\                         Annex.Content.Presence         Annex/Content/Presence.hs:(53,61)-(68,31)             3.1    8.5
keyFile.anyneedesc                 Annex.Locations                Annex/Locations.hs:806:9-44                           3.1    1.0
seekFilteredKeys.exists            CmdLine.Seek                   CmdLine/Seek.hs:465:9-92                              2.8    0.4
fileKey                            Annex.Locations                Annex/Locations.hs:(814,1)-(824,41)                   2.1    1.0
keyPath                            Annex.Locations                Annex/Locations.hs:(834,1)-(836,23)                   1.8    5.9
Comment by joey
Use an older version e.g. from archive.org

This happens sometimes and will eventually get fixed when joey notices it. Currently the binary is only on his laptop apparently.

You can use an older version which is eventually available on archive.org:

[[!format bash """ yann in yann-desktop-nixos in …/OSX/current/10.15_Catalina on  master took 2s123ms 🐟 ❯ git co d8a7d5d54d24d17810f07c0756e7334e998650fe HEAD ist jetzt bei d8a7d5d54d publishing git-annex 10.20250630 10.20250606 yann in yann-desktop-nixos in …/OSX/current/10.15_Catalina on  HEAD (d8a7d5d) 🐟 ❯ git annex whereis whereis git-annex.dmg (1 copy) 5dc2ccd1-e534-4dae-8e8c-f31c8015e26e -- archive.org via S3

The following untrusted locations may also have copies: 00000000-0000-0000-0000-000000000001 -- web

web: http://archive.org/download/git-annex-builds/SHA256E-s28610967--7fc0dbf3f0a1f275a95730899327694b90dcd60c4ba8d8070a3efde44983a719.dmg ok """]]

So for example this link:

Comment by nobodyinperson
We don’t need a 'git annex lock' after a 'git annex add', right?

Hi there!

I'm learning how to use unlock, and I'm relatively new to git-annex.

I think I’ve understood the concept behind this feature, but I don’t get why, in the example, the git annex lock command is used after git annex add:

git annex unlock photo.jpg
gimp photo.jpg
git annex add photo.jpg
git annex lock photo.jpg   <------ This one
git commit -m "redeye removal"

Isn’t the file already locked by the git annex add ?

Thank you in advance.

Comment by Cletip
Ignoring files on directory special remote
Is there a way for git-annex to completely ignore some files on a directory special remote? I'm managing files on my MP3 player's SD card using a directory special remote, but git-annex also tries to manage the player's database files, which I don't want. If I exclude them from wanted or put them in .gitignore, git-annex tries to delete them on sync or export.
Comment by ruka
Re: Ignoring files on directory special remote

If you exclude them from wanted or gitignore them before ever importing from the special remote, it won't delete them. But if you already imported a tree containing the files, and then exclude them, and then export a tree, git-annex will see that the old tree contained the file, and the new tree did not, and so will delete the file.

Comment by joey
Standalone rpms not available
Hello, are the RPMs no longer being published, it doesn't seem to be available anymore.
Comment by zhunting
comment 6

I'm getting acquainted with this special remote. I cannot praise it enough. It is brilliant.

This is my first cut git-annex-compute-stripexif:

[[!format bash """

!/bin/bash

set -e

if [ -z "$1" ]; then echo "Specify the input image file, followed by the output image file." >&2 echo "Example: foo.jpg foo.gif" >&2 exit 1 fi

echo REPRODUCIBLE echo "INPUT $1" read input

if [ -n "$input" ]; then tf=$(mktemp) cp "$input" "$tf" >&2 exiftool -overwrite_original -ALL= "$tf" >&2 outfile="SANSEXIF-"$(git-annex calckey "$tf") fi echo "OUTPUT $outfile" read output

cp -v "$tf" "$outfile" >&2 rm -v "$tf" >&2 """]]

Along the way, I've learnt that EXIF metadata isn't the only metadata stored in a jpeg, so the name is now a bit of a misnomer. Also, as it was more proof-of-concept, the target name and location is not well thought out, and there's no preservation of file extension. It's indicative for now.

The aim is to aid (only) in the identifying two copies of the same jpeg, where only the metadata has been changed (eg. either by adjustments I made by script eons ago, or by apps like Microsoft photoviewer where orientation changes were made via metadata). I say aid only, because it's not going to help if the image is resized, etc. and I understand that.

To that end, I do have some questions. The first is... is it wise (or possible) to try to set metadata on the source files whilst in the script? (since writing this, I have come to understand that the compute script is not run within the working directory, and the implication is that you're not meant to run any git-annex commands)

Obviously, the idea would be to tag the source file with the computed key. I have already verified that if two copies of a jpeg that differ only by metadata, the computed file and key will be the same.

But what I found is, if I don't have that option to set metadata, then respectfully, git-annex-findcomputed may have some deficiencies.

From what I can gather, git-annex-findcomputed will not list the subsequent input file that when added, computes it. Only the first one.

So trying to post process the computed files to perform the setting of metadata on the source files would likely not work.

Also, I was curious about what happens if the input file moves within the archive? I haven't tried... but from what I can see, you wouldn't be able to backtrack from the computed file, because you won't know the key of the input file, in turn to go searching for it (eg. git-annex-whereused).

Is my use case way off base as to why you should use the compute remote?

Comment by beryllium
repodata is empty again :(

Hi,

seems the repordata folder is empty again and no release is published :(

Evgeni

Comment by evgeni