Please describe the problem in your own words.
Really not sure what is going on since no logs tell me the story here (may be just absent ExitSuccess, which seems ignored?).
I have a fresh (first to me) instance of forgejo+aneksajo (Version: 14.0.2-git-annex-dl1) would need IP to permit access ATM if needed to "sense"), where I created a blank repo, initiated git-annex branch, and I added it as a hub-con remote. It got its annex UUID and all good.
❯ git config list | grep hub-con
branch.master.remote=hub-con
remote.hub-con.url=https://hub.centerforopenneuroscience.org/con/liab-falkor-hub.git
remote.hub-con.fetch=+refs/heads/*:refs/remotes/hub-con/*
remote.hub-con.annexurl=annex+https://hub.centerforopenneuroscience.org:443/git-annex-p2phttp
remote.hub-con.annex-uuid=e9147e49-a1d5-49b1-bd50-74010d401463
But nomater what I do, it does not merge that remote's git-annex branch, and moreover annex sync has
push hub-con
[2026-10-07 13:09:57.620037708] (Utility.Process) process [2221140] call: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","-c","annex.debug=true","push","--quiet","hub-con","master"]
[2026-10-07 13:09:57.833136715] (Utility.Process) process [2221140] done ExitSuccess
[2026-10-07 13:09:57.833990038] (Utility.Process) process [2221150] call: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","-c","annex.debug=true","push","--quiet","hub-con","+git-annex:synced/git-annex"]
[2026-10-07 13:09:58.061232012] (Utility.Process) process [2221150] done ExitSuccess
[2026-10-07 13:09:58.062176762] (Utility.Process) process [2221164] read: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","-c","annex.debug=true","push","--quiet","hub-con","git-annex"]
push hub-con ok
in its output which kinda (now not sure since I do not think there is no ExitSuccess for the 2221164) suggests no issue and that all is pushed ok there. But branch remains detached and not pushable if I retry the command above:
❯ git "--git-dir=.git" "--work-tree=." "--literal-pathspecs" "-c" "annex.debug=true" "push" "--quiet" "hub-con" "git-annex"
To https://hub.centerforopenneuroscience.org/con/liab-falkor-hub.git
! [rejected] git-annex -> git-annex (non-fast-forward)
error: failed to push some refs to 'https://hub.centerforopenneuroscience.org/con/liab-falkor-hub.git'
hint: Updates were rejected because a pushed branch tip is behind its remote
hint: counterpart. If you want to integrate the remote changes, use 'git pull'
hint: before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
and I have that branch entirely not merged and without common ancestor
❯ git log -p hub-con/git-annex
commit 6add3255db98a1eb71a4612bf043c1a015c9dd60 (hub-con/git-annex)
Author: Gitea <gitea@fake.local>
Date: Wed Oct 7 16:48:28 2026 +0000
update
diff --git a/uuid.log b/uuid.log
new file mode 100644
index 0000000..d1994b3
--- /dev/null
+++ b/uuid.log
@@ -0,0 +1 @@
+e9147e49-a1d5-49b1-bd50-74010d401463 git@b16fdd44ad3a:/var/lib/gitea/git/repositories/con/liab-falkor-hub.git timestamp=1791391708s
commit 0f0200d0775e88913bee136d0eafb3ac1eb4496c
Author: Gitea <gitea@fake.local>
Date: Wed Oct 7 16:48:28 2026 +0000
branch created
What steps will reproduce the problem?
What version of git-annex are you using? On what operating system?
I believe PyPI build of mih ATM:
❯ git-annex version | head -n 3
git-annex version: 10.20260901-g29d2c4f5723a6bc5dc380b5fd75b4e60aad6e4e1
build flags: Assistant Webapp Inotify TorrentParser MagicMime Benchmark Feeds Testsuite S3 WebDAV Servant OsPath Blake3 XXH3
dependency versions: aws-0.25.2 bloomfilter-2.0.1.3 crypton-1.0.6 DAV-1.3.4 feed-1.3.2.1 ghc-9.10.3 http-client-0.7.19 torrent-10000.1.3 uuid-1.3.16.1 yesod-1.6.2.3
❯ which git-annex
/home/yoh/.local/bin/git-annex
trying sync for con/git-annex build of
❯ /usr/bin/git-annex version
git-annex version: 10.20261006+git5-gea6caba7a3-1~ndall+1
also the same "result".
Please provide any additional information below.
may be more relevant info in
https://www.oneukrainian.com/tmp/20261007-git-annex-merge-details.txt
What's weird about your situation and I don't understand is you do not have a remotes/hub-con/git-annex, which would be the usual name of the remote tracking branch that git-annex would normally automatically merge.
You do have a local branch named hub-con/git-annex. I don't understand where that came from. Maybe that ought to be merged and isn't being merged, but you're clearly doing something unusual to have that rather than the regular remote tracking branch.
Anyway, to dispell some of the other confusion in this bug report:
git-annex pushdoes not treat a failure to push the git-annex branch as an error since it has already sent the same information to the remote in a successful force-push of the synced/git-annex branch. So that is all a red herring.And when you ran "git annex merge hub-con", that is the wrong command to merge the git-annex branch from the remote. That command merges a branch named "hub-con" into the current branch.
hm, did I cut paste something incorrectly somewhere? I do not think it is the case:
indeed! it seems that somehow, in that most recent merge it did add that UUID, and that was done in a commit TODAY catching up on a "transition" (done as AFAIK finished days ago! and IIRC on a different host but I could be mistaken and may be it was done on this) when this repo was produced by splitting off the tree of a larger "original repo".
so indeed info is there! but how that continuing transition came up again?
since info is there -- may be I could just force push git-annex branch (if would be allowed) or manually merge directly and push, correct?
Your log shows that you did not have refs/remotes/hub-con/git-annex at the point where
git-annex syncwould have merged it:If your local git-annex branch contains a
git-annex forgettransition, git-annex necessarily cannot merge unrelated remote git-annex branches into it, because they may contain exactly the historical information that was requested to be forgotten. Instead, the new information is extracted from the remote git-annex branch and put into the local git-annex branch.Once the local git-annex branch is pushed to the remote as synced/git-annex, and git-annex is run on the server, it will replace the unrelated git-annex branch.
Maybe I was mistaken about whether you have refs/remotes/hub-con/git-annex. I don't think it matters; as far as I can see there's nothing here that would be unexpected when there's a
git-annex forgettransition involved.But what I wonder now is if the server ever replaced its git-annex branch with the synced/git-annex branch that got pushed to it. (Update: Based on comment #5 it has not.)
That needs git-annex to run on the server, and it may be that nothing causes forgejo+aneksajo to run git-annex in this situation, and so it leaves its git-annex branch at the initial
git-annex initvalue.The same could happen with a git remote that doesn't have git-annex installed.
And that would leave synced/git-annex as the only place where new git-annex branch information is being communicate. The problem with that being that multiple clients can force push that, which can result in information sent by one getting overwritten by another. While the clients would eventually converge on a single merged git-annex branch via only synced/git-annex, it might take some time.
I think that
git-annex synccould deal with this better, by checking if the remote git-annex branch's sha is in gitAnnexIgnoredRefs. And if so, forcing a push to the remote git-annex branch, using --force-with-lease to avoid overwriting any changes that might get made to it at the same time.may be because it was not yet created by
forgejo+aneksjoor I have not fetched yet... oh, welloh, what how that magical addition has happened! I still have transition information
but when should it get gone -- any step I could do to fascilitate besides just going and killing that file? Or it to remain there forever to be sure not pick up from "old history"? (here new forgejo though was newer AFAIK)
It's fine to force-push your git-annex branch to the server in this situation.