that the cwd will be inside the repo being upgraded. In particular,
this fixes a problem where upgrading a v7 repo to v8 caused an ugly
git error message.
+ * Fix upgrade failure when a file has been deleted from the working tree.
* Improve behavior when a directory git-annex is writing to gets
unmounted. Previously it could in some cases re-create the mount point
and directory tree, and even write object contents to the wrong disk.
(l, cleanup) <- inRepo $ LsFiles.inodeCaches [top]
forM_ l $ \case
(_f, Nothing) -> giveup "Unable to parse git ls-files --debug output while upgrading git-annex sqlite databases."
- (f, Just ic) -> unlessM (liftIO $ isSymbolicLink <$> getSymbolicLinkStatus f) $ do
+ (f, Just ic) -> unlessM (liftIO $ catchBoolIO $ isSymbolicLink <$> getSymbolicLinkStatus f) $ do
catKeyFile (toRawFilePath f) >>= \case
Nothing -> noop
Just k -> do
everything worked like a charm until this recent change
+
+> [[fixed|done]] --[[Joey]]
--- /dev/null
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 4"""
+ date="2020-03-09T20:53:45Z"
+ content="""
+I was able to reverse engineer the error message by deleting one of the
+file in the git repository, but not staging the deletion.
+
+That does not seem to match what you were saying about the symlink
+existing, but perhaps it was upgrading some other repository where
+the file was deleted, or very likely I am failing to understand what you
+were trying to explain.
+
+Since what I've fixed is the only way it could throw that exception, I'm
+going to assume this bug is fixed, but if you try the next version of
+git-annex and it still has the problem, do follow up.
+"""]]