fix a bug that prevented git-annex init from working in a submodule
This is probably a reversion, but not sure what caused it. By the time Annex.Init runs fixupUnusualReposAfterInit, another git-annex process has at least sometimes already done the necessary fixups. (Eg, one run indirectly by a git command.) But since the Repo is cached, it doesn't realize and does them again. So, avoid crashing when git config --unset fails. This commit was sponsored by Jack Hill on Patreon.
This commit is contained in:
parent
7482c093cc
commit
95cd49abdb
4 changed files with 30 additions and 3 deletions
|
@ -115,9 +115,8 @@ fixupUnusualRepos r@(Repo { location = l@(Local { worktree = Just w, gitdir = d
|
||||||
removeWhenExistsWith R.removeLink dotgit
|
removeWhenExistsWith R.removeLink dotgit
|
||||||
R.createSymbolicLink linktarget dotgit
|
R.createSymbolicLink linktarget dotgit
|
||||||
|
|
||||||
unsetcoreworktree =
|
-- Unsetting a config fails if it's not set, so ignore failure.
|
||||||
maybe (giveup "unset core.worktree failed") (\_ -> return ())
|
unsetcoreworktree = void $ Git.Config.unset "core.worktree" r
|
||||||
=<< Git.Config.unset "core.worktree" r
|
|
||||||
|
|
||||||
worktreefixup =
|
worktreefixup =
|
||||||
-- git-worktree sets up a "commondir" file that contains
|
-- git-worktree sets up a "commondir" file that contains
|
||||||
|
|
|
@ -33,6 +33,7 @@ git-annex (8.20201130) UNRELEASED; urgency=medium
|
||||||
* Directory special remotes with importtree=yes now avoid unncessary
|
* Directory special remotes with importtree=yes now avoid unncessary
|
||||||
overhead when inodes of files have changed, as happens whenever a FAT
|
overhead when inodes of files have changed, as happens whenever a FAT
|
||||||
filesystem gets remounted.
|
filesystem gets remounted.
|
||||||
|
* Fix a bug that prevented git-annex init from working in a submodule.
|
||||||
|
|
||||||
-- Joey Hess <id@joeyh.name> Mon, 04 Jan 2021 12:52:41 -0400
|
-- Joey Hess <id@joeyh.name> Mon, 04 Jan 2021 12:52:41 -0400
|
||||||
|
|
||||||
|
|
|
@ -36,3 +36,6 @@ Also the same on CentOS 7, I was just able to reproduce it on my F32 workstation
|
||||||
|
|
||||||
### 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)
|
### 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)
|
||||||
Besides this problem, I am super happy with git-annex and use it at work and at home daily :-)
|
Besides this problem, I am super happy with git-annex and use it at work and at home daily :-)
|
||||||
|
|
||||||
|
> [[fixed|done]] although w/o a way to reproduce it I can't be 100% sure
|
||||||
|
> --[[Joey]]
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
[[!comment format=mdwn
|
||||||
|
username="joey"
|
||||||
|
subject="""comment 5"""
|
||||||
|
date="2021-01-21T18:14:09Z"
|
||||||
|
content="""
|
||||||
|
Thanks Mike, that confirms it's failing to unset the config that's not set.
|
||||||
|
|
||||||
|
The .git symlink is what git-annex is supposed to set up, so it should not
|
||||||
|
need to do anything else and the question is, why does it still think it
|
||||||
|
needs to change something?
|
||||||
|
|
||||||
|
I was able to reproduce the warning, just run `git submodule add foo
|
||||||
|
/path/to/annexrepo` and then in foo, `git-annex init` and then it
|
||||||
|
happens part-way through. Due to two different git-annex processes both
|
||||||
|
trying to do the same conversion, with the second one failing.
|
||||||
|
I've fixed that.
|
||||||
|
|
||||||
|
My fix will also fix your problem. But, I don't actually
|
||||||
|
understand how to reproduce your problem. I was only able to make it happen
|
||||||
|
when running `git-annex init` (or letting it auto-init),
|
||||||
|
not running other git-annex commands in a repo it's already initialized.
|
||||||
|
|
||||||
|
Maybe you have `GIT_DIR` set to "../../../.git/modules/..."?
|
||||||
|
"""]]
|
Loading…
Add table
Reference in a new issue