Please describe the problem.

Identically configured remotes behave differently in the "git annex push" command after "git annex sync" to only one of them.

What steps will reproduce the problem?

I have a repository on Linux and two USB backup sticks, all Ext4 file system. At one point I accidentally did "git annex sync music-backup-one".

When I now "git annex push music-backup-two" it works as expected and I see the correct files on the stick and "git annex list" shows the content correctly. This is not true for "git annex push music-backup-one" as I must also issue "git annex mirror . --to=music-backup-one" for the content and "git annex list" to be correct (both commands are required in either order).

How do I diagnose the problem so push works without the need for mirror on music-backup-one?

During my investigation, I noticed the filemode (executable) bit for annexed files is not transferred to either USB drive if that is the only change (perhaps a separate issue).

What version of git-annex are you using? On what operating system?

10.20231130-g0e9bc415882a5e3a285e004cf9f80936e5762a07

Please provide any additional information below.

# If you can, paste a complete transcript of the problem occurring here.
# If the problem is with the git-annex assistant, paste in .git/annex/daemon.log

All three repos have:
'annex.largefiles' set to 'mimeencoding=binary',
'group' set to 'manual'
'wanted' set to 'standard' and
'numcopies' set to 3.

desktop-music has adjust option --unlock and the two backups have option --lock.

Here is the contents of .git/config for desktop-music:

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
[annex]
    uuid = 0045d866-c80e-43c1-9b1b-b15a8c97c1aa
    version = 10
    adjustedbranchrefresh = true
[filter "annex"]
    smudge = git-annex smudge -- %f
    clean = git-annex smudge --clean -- %f
    process = git-annex filter-process
[push]
    followTags = true
[receive]
    denyCurrentBranch = updateInstead
[remote "music-backup-one"]
    url = /media/juanito/music-backup-one/music-library
    fetch = +refs/heads/*:refs/remotes/music-backup-one/*
    annex-uuid = 0b439b9f-16c7-4945-8cb2-9d6084677af3
[remote "music-backup-two"]
    url = /media/juanito/music-backup-two/music-library
    fetch = +refs/heads/*:refs/remotes/music-backup-two/*
    annex-uuid = 74a6b33c-fea2-45ef-a0c5-b677b43bc85f
[remote "github"]
    url = git@github.com:not-for-you.git
    fetch = +refs/heads/*:refs/remotes/github/*
    annex-ignore = true
[remote "itunes-media"]
    annex-directory = /home/juanito/annex-remotes/itunes-media
    annex-uuid = e18dbc8e-8e0f-47f2-8f33-e8eb9da97a62
    skipFetchAll = true
    annex-tracking-branch = main:Music
[remote "linux-media"]
    annex-directory = /home/juanito/annex-remotes/linux-media
    annex-uuid = b4efca25-5be6-4ea5-b0f9-207770abf21b
    skipFetchAll = true
    annex-tracking-branch = main:Music

Here is the contents of .git/config for music-backup-one:

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
[remote "desktop-music"]
    url = /home/juanito/git/music-library
    fetch = +refs/heads/*:refs/remotes/desktop-music/*
    annex-uuid = 0045d866-c80e-43c1-9b1b-b15a8c97c1aa
[branch "adjusted/main(unlocked)"]
    remote = desktop-music
    merge = refs/heads/adjusted/main(unlocked)
[annex]
    uuid = 0b439b9f-16c7-4945-8cb2-9d6084677af3
    version = 10
    adjustedbranchrefresh = true
[filter "annex"]
    smudge = git-annex smudge -- %f
    clean = git-annex smudge --clean -- %f
    process = git-annex filter-process
[push]
    followTags = true
[receive]
    denyCurrentBranch = updateInstead

Here is the contents of .git/config for music-backup-two:

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
[remote "desktop-music"]
    url = /home/juanito/git/music-library
    fetch = +refs/heads/*:refs/remotes/desktop-music/*
    annex-uuid = 0045d866-c80e-43c1-9b1b-b15a8c97c1aa
[branch "adjusted/main(unlocked)"]
    remote = desktop-music
    merge = refs/heads/adjusted/main(unlocked)
[annex]
    uuid = 74a6b33c-fea2-45ef-a0c5-b677b43bc85f
    version = 10
    adjustedbranchrefresh = true
[filter "annex"]
    smudge = git-annex smudge -- %f
    clean = git-annex smudge --clean -- %f
    process = git-annex filter-process
[push]
    followTags = true
[receive]
    denyCurrentBranch = updateInstead

# End of transcript or log.

Have you had any luck using git-annex before? (Sometimes we get tired of reading bug reports all day and a lil' positive end note does wonders)