diff --git a/Command/Migrate.hs b/Command/Migrate.hs index 56147113b9..38dfd06b23 100644 --- a/Command/Migrate.hs +++ b/Command/Migrate.hs @@ -8,6 +8,7 @@ module Command.Migrate where import Control.Monad.State (liftIO) +import Control.Monad (unless) import System.Posix.Files import System.Directory @@ -58,7 +59,8 @@ perform file oldkey newbackend = do ok <- getViaTmpUnchecked newkey $ \t -> do -- Make a hard link to the old backend's -- cached key, to avoid wasting disk space. - liftIO $ createLink src t + exists <- liftIO $ doesFileExist t + unless exists $ liftIO $ createLink src t return True if ok then do diff --git a/debian/changelog b/debian/changelog index f124296cc8..9a3ffbafaf 100644 --- a/debian/changelog +++ b/debian/changelog @@ -13,6 +13,8 @@ git-annex (0.20110321) UNRELEASED; urgency=low * unused: In fast mode, just show all existing temp files as unused, and avoid expensive scan for other unused content. * Fix space leak in fsck and drop commands. + * migrate: Bugfix for case when migrating a file results in a key that + is already present in .git/annex/objects. -- Joey Hess Tue, 22 Mar 2011 16:52:00 -0400