migrate: Bugfix for case when migrating a file results in a key that is already present in .git/annex/objects.
For example, this could happen if using SHA1 and a file with content "foo" were added to that backend. Then a file with "content" foo were migrated from the WORM backend. Assume that, if a backend assigned the same key, the already annexed content must be the same. So, the "old" content can be reused.
This commit is contained in:
parent
af45a62980
commit
8beb72e206
2 changed files with 5 additions and 1 deletions
|
@ -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
|
||||
|
|
2
debian/changelog
vendored
2
debian/changelog
vendored
|
@ -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 <joeyh@debian.org> Tue, 22 Mar 2011 16:52:00 -0400
|
||||
|
||||
|
|
Loading…
Reference in a new issue