avoid warning in startDispose

When a file never got exported to the remote, and is now being removed
from the exported tree, it tried to rename, which failed, and displayed
an ugly warning:

	unexport d m8
	  rename failed (/home/joey/tmp/bench2/d/m8: renameFile:renamePath:rename: does not exist (No such file or directory)); deleting instead
	ok
This commit is contained in:
Joey Hess 2024-08-08 11:59:16 -04:00
parent 01edd186e9
commit bd677bb65a
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38

View file

@ -418,7 +418,7 @@ startDispose r db f ek =
if annexObjects (Remote.config r) && not (isGitShaKey ek) if annexObjects (Remote.config r) && not (isGitShaKey ek)
then do then do
gc <- Annex.getGitConfig gc <- Annex.getGitConfig
performRename r db ek loc performRename False r db ek loc
(exportAnnexObjectLocation gc ek) (exportAnnexObjectLocation gc ek)
else performUnexport r db [ek] loc else performUnexport r db [ek] loc
where where
@ -444,7 +444,7 @@ startRecoverIncomplete r db sha oldf
startMoveToTempName :: Remote -> ExportHandle -> TopFilePath -> Key -> CommandStart startMoveToTempName :: Remote -> ExportHandle -> TopFilePath -> Key -> CommandStart
startMoveToTempName r db f ek = case renameExport (exportActions r) of startMoveToTempName r db f ek = case renameExport (exportActions r) of
Just _ -> starting ("rename " ++ name r) ai si $ Just _ -> starting ("rename " ++ name r) ai si $
performRename r db ek loc tmploc performRename True r db ek loc tmploc
Nothing -> starting ("unexport " ++ name r) ai' si $ Nothing -> starting ("unexport " ++ name r) ai' si $
performUnexport r db [ek] loc performUnexport r db [ek] loc
where where
@ -460,7 +460,7 @@ startMoveFromTempName :: Remote -> ExportHandle -> Key -> TopFilePath -> Command
startMoveFromTempName r db ek f = case renameExport (exportActions r) of startMoveFromTempName r db ek f = case renameExport (exportActions r) of
Just _ -> stopUnless (liftIO $ elem tmploc <$> getExportedLocation db ek) $ Just _ -> stopUnless (liftIO $ elem tmploc <$> getExportedLocation db ek) $
starting ("rename " ++ name r) ai si $ starting ("rename " ++ name r) ai si $
performRename r db ek tmploc loc performRename True r db ek tmploc loc
Nothing -> starting ("unexport " ++ name r) ai' si $ Nothing -> starting ("unexport " ++ name r) ai' si $
performUnexport r db [ek] tmploc performUnexport r db [ek] tmploc
where where
@ -472,12 +472,14 @@ startMoveFromTempName r db ek f = case renameExport (exportActions r) of
ai' = ActionItemTreeFile (fromExportLocation tmploc) ai' = ActionItemTreeFile (fromExportLocation tmploc)
si = SeekInput [] si = SeekInput []
performRename :: Remote -> ExportHandle -> Key -> ExportLocation -> ExportLocation -> CommandPerform performRename :: Bool -> Remote -> ExportHandle -> Key -> ExportLocation -> ExportLocation -> CommandPerform
performRename r db ek src dest = case renameExport (exportActions r) of performRename warnonfail r db ek src dest = case renameExport (exportActions r) of
Just renameaction -> tryNonAsync (renameaction ek src dest) >>= \case Just renameaction -> tryNonAsync (renameaction ek src dest) >>= \case
Right (Just ()) -> next $ cleanupRename r db ek src dest Right (Just ()) -> next $ cleanupRename r db ek src dest
Left err -> do Left err -> do
warning $ UnquotedString $ "rename failed (" ++ show err ++ "); deleting instead" when warnonfail $
warning $ UnquotedString $
"rename failed (" ++ show err ++ "); deleting instead"
fallbackdelete fallbackdelete
Right Nothing -> fallbackdelete Right Nothing -> fallbackdelete
-- remote does not support renaming -- remote does not support renaming