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
|
module Command.Migrate where
|
||||||
|
|
||||||
import Control.Monad.State (liftIO)
|
import Control.Monad.State (liftIO)
|
||||||
|
import Control.Monad (unless)
|
||||||
import System.Posix.Files
|
import System.Posix.Files
|
||||||
import System.Directory
|
import System.Directory
|
||||||
|
|
||||||
|
@ -58,7 +59,8 @@ perform file oldkey newbackend = do
|
||||||
ok <- getViaTmpUnchecked newkey $ \t -> do
|
ok <- getViaTmpUnchecked newkey $ \t -> do
|
||||||
-- Make a hard link to the old backend's
|
-- Make a hard link to the old backend's
|
||||||
-- cached key, to avoid wasting disk space.
|
-- cached key, to avoid wasting disk space.
|
||||||
liftIO $ createLink src t
|
exists <- liftIO $ doesFileExist t
|
||||||
|
unless exists $ liftIO $ createLink src t
|
||||||
return True
|
return True
|
||||||
if ok
|
if ok
|
||||||
then do
|
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,
|
* unused: In fast mode, just show all existing temp files as unused,
|
||||||
and avoid expensive scan for other unused content.
|
and avoid expensive scan for other unused content.
|
||||||
* Fix space leak in fsck and drop commands.
|
* 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
|
-- Joey Hess <joeyh@debian.org> Tue, 22 Mar 2011 16:52:00 -0400
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue