Please describe the problem.
It is not possible to export e.g. the synced/main
branch to an exporttree=yes special remote.
What steps will reproduce the problem?
see transcript below, but basically:
> git annex initremote myexport type=directory exporttree=yes encryption=none directory=/path/to/dir
> git config remote.myexport.annex-tracking-branch synced/main
> git annex push myexport
# Not updating export to myexport because tracking branch name is not valid. (As configured by remote.myexport.annex-tracking-branch)
What version of git-annex are you using? On what operating system?
10.20240927 on NixOS
Please provide any additional information below.
yann in 🌐 yann-desktop-nixos in …/code/git-annex-test/export-synced-branch
🐟 ❯ git init
Leeres Git-Repository in /home/yann/code/git-annex-test/export-synced-branch/.git/ initialisiert
yann in 🌐 yann-desktop-nixos in …/export-synced-branch on main
🐟 ❯ git annex init
init ok
(recording state in git...)
yann in 🌐 yann-desktop-nixos in …/export-synced-branch on main
🐟 ❯ touch bla
yann in 🌐 yann-desktop-nixos in …/export-synced-branch on main [?]
🐟 ❯ git annex assist -m "Add file"
add bla ok
(recording state in git...)
commit (recording state in git...)
ok
yann in 🌐 yann-desktop-nixos in …/export-synced-branch on main took 2s644ms
🐟 ❯ git annex initremote myexport type=directory exporttree=yes encryption=none directory=../exported-synced-branch
initremote myexport
git-annex: Directory does not exist: /home/yann/code/git-annex-test/exported-synced-branch
failed
initremote: 1 failed
yann in 🌐 yann-desktop-nixos in …/export-synced-branch on main
❌1 🐟 ❯ mkdir ../exported-synced-branch/
yann in 🌐 yann-desktop-nixos in …/export-synced-branch on main
🐟 ❯ git annex initremote myexport type=directory exporttree=yes encryption=none directory=../exported-synced-branch
initremote myexport ok
(recording state in git...)
yann in 🌐 yann-desktop-nixos in …/export-synced-branch on main
🐟 ❯ git config remote.myexport.annex-tracking-branch synced/main
yann in 🌐 yann-desktop-nixos in …/export-synced-branch on main
🐟 ❯ git annex push myexport
Not updating export to myexport because tracking branch name is not valid. (As configured by remote.myexport.annex-tracking-branch)
yann in 🌐 yann-desktop-nixos in …/export-synced-branch on main
🐟 ❮ git config remote.myexport.annex-tracking-branch main
yann in 🌐 yann-desktop-nixos in …/export-synced-branch on main
🐟 ❯ git annex push myexport
export myexport bla ok
(recording state in git...)
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)
git-annex is amazing, thank you! 🤩
The difficulty here is that it needs to come up with the name of a corresponding remote tracking branch to update. It could use "myexport/synced/main" for that. But, setting
annex-tracking-branch
to a remote ref like "origin/main" is not supported, and it would not be good if it allowed it and used a tracking branch with a name like "myexport/origin/main".And well, we know that "synced/main" is not a remote ref, but "$foo/main" generally may or may not be one.
So, I think to support this, it would have only allow using "$foo/main" when the ref "refs/remotes/$foo/main" does not exist. I've implemented that.