diff --git a/Command/Migrate.hs b/Command/Migrate.hs index 3d61214377..59ad36a2b4 100644 --- a/Command/Migrate.hs +++ b/Command/Migrate.hs @@ -27,15 +27,20 @@ seek :: [CommandSeek] seek = [withBackendFilesInGit start] start :: CommandStartBackendFile -start (_, Nothing) = return Nothing -start (file, Just newbackend) = isAnnexed file $ \(key, oldbackend) -> do +start (file, b) = isAnnexed file $ \(key, oldbackend) -> do exists <- inAnnex key + newbackend <- choosebackend b if (newbackend /= oldbackend) && exists then do showStart "migrate" file return $ Just $ perform file key newbackend else return Nothing + where + choosebackend Nothing = do + backends <- Backend.list + return $ head backends + choosebackend (Just backend) = return backend perform :: FilePath -> Key -> Backend -> CommandPerform perform file oldkey newbackend = do diff --git a/debian/changelog b/debian/changelog index 6950bda20d..510091b7bc 100644 --- a/debian/changelog +++ b/debian/changelog @@ -4,6 +4,7 @@ git-annex (0.18) UNRELEASED; urgency=low after transferring the file to the remote repository. (Did not affect ssh remotes.) * fsck: Fix bug in moving of corrupted files to .git/annex/bad/ + * migrate: Fix support for --backend option. * Test suite improvements. Current top-level test coverage: 75% -- Joey Hess Tue, 11 Jan 2011 16:05:25 -0400 diff --git a/test.hs b/test.hs index 716d1a0dee..417d830e86 100644 --- a/test.hs +++ b/test.hs @@ -328,8 +328,8 @@ test_migrate = "git-annex migrate" ~: TestList [t False, t True] if usegitattributes then do writeFile ".gitattributes" "* annex.backend=SHA1" - git_annex "migrate" [sha1annexedfile] @? "migrate to same backend failed" - git_annex "migrate" [annexedfile] @? "migrate to different backend failed" + git_annex "migrate" ["-q", sha1annexedfile] @? "migrate to same backend failed" + git_annex "migrate" ["-q", annexedfile] @? "migrate to different backend failed" else do git_annex "migrate" [sha1annexedfile, "--backend=SHA1"] @? "migrate to same backend failed" git_annex "migrate" [annexedfile, "--backend=SHA1"] @? "migrate to different backend failed"