From: Joey Hess Date: Wed, 25 Jun 2025 17:36:19 +0000 (-0400) Subject: Work around git 2.50 bug that caused it to crash when there is a merge conflict with... X-Git-Tag: archive/raspbian/10.20250416-2+rpi1~1^2~2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=892869805104d1e3237d640dcd75508380062a28;p=git-annex.git Work around git 2.50 bug that caused it to crash when there is a merge conflict with an unlocked annexed file This fixes several test suite failures with git 2.50. See the bug report for the full, gory details. (cherry picked from commit fb155b1e3e59cc1f9cf8a4fe7d47cba49d1c81af) --- diff --git a/Database/Keys.hs b/Database/Keys.hs index cc3f189b99..22962e1372 100644 --- a/Database/Keys.hs +++ b/Database/Keys.hs @@ -1,6 +1,6 @@ {- Sqlite database of information about Keys - - - Copyright 2015-2022 Joey Hess + - Copyright 2015-2025 Joey Hess - - Licensed under the GNU AGPL version 3 or higher. -} @@ -260,7 +260,7 @@ isInodeKnown i s = or <$> runReaderIO ContentTable - is an associated file. -} reconcileStaged :: Bool -> H.DbQueue -> Annex DbTablesChanged -reconcileStaged dbisnew qh = ifM isBareRepo +reconcileStaged dbisnew qh = ifM notneeded ( return mempty , do gitindex <- inRepo currentIndexFile @@ -335,6 +335,14 @@ reconcileStaged dbisnew qh = ifM isBareRepo getindextree = inRepo $ \r -> writeTreeQuiet $ r { gitGlobalOpts = gitGlobalOpts r ++ bypassSmudgeConfig } + notneeded = isBareRepo + -- Avoid doing anything when run by the + -- smudge clean filter. When that happens in a conflicted + -- merge situation, running git write-tree + -- here would cause git merge to fail with an internal + -- error. This works around around that bug in git. + <||> Annex.getState Annex.insmudgecleanfilter + diff old new = -- Avoid running smudge clean filter, since we want the -- raw output, and it would block trying to access the