+++ /dev/null
- git init g
- cd g
- git annex init
- git commit --allow-empty -m foo
- cd ..
- git clone g g2
- git clone g g3
- cd g3
- git remote add g2 ../g2
- git-annex assist
- date > n
- git-annex assist --jobs=2
- git-annex move --from origin
- git-annex move --from g2
-
-The final move fails, complaining it's not safe to drop the last copy. It
-has somehow lost track of the fact that there's a local copy.
-
-Actually... This also happens not using assist, just add:
-
- git init g
- cd g
- git annex init
- git commit --allow-empty -m foo
- cd ..
- git clone g g3
- cd g3
- git-annex init
- date > n
- git-annex add --jobs=2
- git-annex whereis
-
-(The clone of g to g3 is for some reason needed... Without that remote, the
-bug doesn't happen.)
-
-Somehow, when add calls logStatus, getUUID == NoUUID, so it doesn't record
-anything. This despite it having initialized with a UUID earlier.
-Even with a manual git-annex init before the command that still happens.
---[[Joey]]
-
-I think this must be related:
-
- joey@darkstar:~/tmp>git init g
- Initialized empty Git repository in /home/joey/tmp/g/.git/
- joey@darkstar:~/tmp>cd g
- joey@darkstar:~/tmp/g>git-annex init
- init ok
- (recording state in git...)
- joey@darkstar:~/tmp/g>git show git-annex | tail
- + joey@darkstar:~/tmp/g timestamp=1688579729.946567508s
-
-uuid.log has a NoUUID item logged to it. This is despite annex.uuid being set.
-10.20230407 --[[Joey]]
--- /dev/null
+Turns out that git-annex breaks badly when git is configured with
+`safe.bareRepository = explicit`.
+
+The breakage starts with git-annex init:
+
+ joey@darkstar:~/tmp>git init g
+ Initialized empty Git repository in /home/joey/tmp/g/.git/
+ joey@darkstar:~/tmp>cd g
+ joey@darkstar:~/tmp/g>git-annex init
+ init ok
+ (recording state in git...)
+ joey@darkstar:~/tmp/g>git show git-annex | tail
+ + joey@darkstar:~/tmp/g timestamp=1688579729.946567508s
+
+uuid.log has a NoUUID item logged to it. This is despite annex.uuid being set.
+10.20230407 --[[Joey]]
+
+And it seems this is because git-annex runs `git config --list`
+inside `.git`.. Which with that config set, omits looking at
+`config`.