diff --git a/Annex.hs b/Annex.hs index b9e71c9314..2c6402ac35 100644 --- a/Annex.hs +++ b/Annex.hs @@ -60,7 +60,6 @@ data AnnexState = AnnexState , catfilehandle :: Maybe CatFileHandle , forcebackend :: Maybe String , forcenumcopies :: Maybe Int - , defaultkey :: Maybe String , toremote :: Maybe String , fromremote :: Maybe String , limit :: Either [Utility.Matcher.Token (FilePath -> Annex Bool)] (Utility.Matcher.Matcher (FilePath -> Annex Bool)) @@ -85,7 +84,6 @@ newState gitrepo = AnnexState , catfilehandle = Nothing , forcebackend = Nothing , forcenumcopies = Nothing - , defaultkey = Nothing , toremote = Nothing , fromremote = Nothing , limit = Left [] diff --git a/Command/FromKey.hs b/Command/FromKey.hs index 4e4644708f..b910dd1f09 100644 --- a/Command/FromKey.hs +++ b/Command/FromKey.hs @@ -12,26 +12,26 @@ import Command import qualified Annex.Queue import Annex.Content import Types.Key -import Config def :: [Command] -def = [command "fromkey" paramPath seek "adds a file using a specific key"] +def = [command "fromkey" (paramPair paramKey paramPath) seek + "adds a file using a specific key"] seek :: [CommandSeek] -seek = [withFilesMissing start] +seek = [withWords start] -start :: FilePath -> CommandStart -start file = notBareRepo $ do - key <- cmdlineKey +start :: [String] -> CommandStart +start (keyname:file:[]) = notBareRepo $ do + let key = maybe (error "bad key") id $ readKey keyname inbackend <- inAnnex key unless inbackend $ error $ - "key ("++keyName key++") is not present in backend" + "key ("++ keyname ++") is not present in backend" showStart "fromkey" file - next $ perform file + next $ perform key file +start _ = error "specify a key and a dest file" -perform :: FilePath -> CommandPerform -perform file = do - key <- cmdlineKey +perform :: Key -> FilePath -> CommandPerform +perform key file = do link <- calcGitLink file key liftIO $ createDirectoryIfMissing True (parentDir file) liftIO $ createSymbolicLink link file diff --git a/Command/SetContent.hs b/Command/SetContent.hs index d62faa445f..0ecfa34bd4 100644 --- a/Command/SetContent.hs +++ b/Command/SetContent.hs @@ -23,7 +23,7 @@ seek = [withWords start] start :: [FilePath] -> CommandStart start (src:dest:[]) = do - showStart "setkey" dest + showStart "setcontent" dest next $ perform src dest start _ = error "specify a src file and a dest file" diff --git a/Config.hs b/Config.hs index f994002b93..bf929219df 100644 --- a/Config.hs +++ b/Config.hs @@ -10,7 +10,6 @@ module Config where import Common.Annex import qualified Git import qualified Annex -import Types.Key (readKey) type ConfigKey = String @@ -92,15 +91,3 @@ getNumCopies v = g <- gitRepo return $ read $ Git.configGet g config "1" config = "annex.numcopies" - -{- The Key specified by the --key parameter. -} -cmdlineKey :: Annex Key -cmdlineKey = do - k <- Annex.getState Annex.defaultkey - case k of - Nothing -> nokey - Just "" -> nokey - Just kstring -> maybe badkey return $ readKey kstring - where - nokey = error "please specify the key with --key" - badkey = error "bad key" diff --git a/debian/changelog b/debian/changelog index 91e4a18af1..25f18f7950 100644 --- a/debian/changelog +++ b/debian/changelog @@ -15,6 +15,8 @@ git-annex (3.20111026) UNRELEASED; urgency=low * unused, dropunused: Now work in bare repositories. * Removed the setkey command, and added a setcontent command with a more useful interface. + * The fromkey command now takes the key as its first parameter. The --key + option is no longer used. -- Joey Hess Thu, 27 Oct 2011 13:58:53 -0400 diff --git a/doc/bugs/No_easy_way_to_re-inject_a_file_into_an_annex/comment_4_480a4f72445a636eab1b1c0f816d365c._comment b/doc/bugs/No_easy_way_to_re-inject_a_file_into_an_annex/comment_4_480a4f72445a636eab1b1c0f816d365c._comment index 4a22d414b2..787173b0a6 100644 --- a/doc/bugs/No_easy_way_to_re-inject_a_file_into_an_annex/comment_4_480a4f72445a636eab1b1c0f816d365c._comment +++ b/doc/bugs/No_easy_way_to_re-inject_a_file_into_an_annex/comment_4_480a4f72445a636eab1b1c0f816d365c._comment @@ -4,5 +4,6 @@ subject="comment 4" date="2011-05-14T16:29:35Z" content=""" -Although, if you really do want to shoot yourself in the foot, or know you have the old content, you can use `git-annex setkey`. +Although, if you really do want to shoot yourself in the foot, or know you +have the old content, you can use `git-annex setcontent`. """]] diff --git a/doc/git-annex.mdwn b/doc/git-annex.mdwn index abddaa0dea..42997e5342 100644 --- a/doc/git-annex.mdwn +++ b/doc/git-annex.mdwn @@ -318,7 +318,7 @@ subdirectories). This is meant to be called from git's pre-commit hook. `git annex init` automatically creates a pre-commit hook using this. -* fromkey file +* fromkey key file This plumbing-level command can be used to manually set up a file in the git repository to link to a specified key. @@ -406,10 +406,6 @@ subdirectories). are in the annex, their backend is known and this option is not necessary. -* --key=name - - Specifies a key to operate on. - * -c name=value Used to override git configuration settings. May be specified multiple times. diff --git a/test.hs b/test.hs index 0ef7449162..fa7657b581 100644 --- a/test.hs +++ b/test.hs @@ -88,7 +88,7 @@ blackbox = TestLabel "blackbox" $ TestList -- test order matters, later tests may rely on state from earlier [ test_init , test_add - , test_setkey + , test_setcontent , test_unannex , test_drop , test_get @@ -118,15 +118,15 @@ test_add = "git-annex add" ~: TestList [basic, sha1dup, subdirs] writeFile annexedfile $ content annexedfile git_annex "add" ["-q", annexedfile] @? "add failed" annexed_present annexedfile + writeFile sha1annexedfile $ content sha1annexedfile + git_annex "add" ["-q", sha1annexedfile, "--backend=SHA1"] @? "add with SHA1 failed" + annexed_present sha1annexedfile writeFile ingitfile $ content ingitfile boolSystem "git" [Param "add", File ingitfile] @? "git add failed" boolSystem "git" [Params "commit -q -a -m commit"] @? "git commit failed" git_annex "add" ["-q", ingitfile] @? "add ingitfile should be no-op" unannexed ingitfile sha1dup = TestCase $ intmpclonerepo $ do - writeFile sha1annexedfile $ content sha1annexedfile - git_annex "add" ["-q", sha1annexedfile, "--backend=SHA1"] @? "add with SHA1 failed" - annexed_present sha1annexedfile writeFile sha1annexedfiledup $ content sha1annexedfiledup git_annex "add" ["-q", sha1annexedfiledup, "--backend=SHA1"] @? "add of second file with same SHA1 failed" annexed_present sha1annexedfiledup @@ -140,15 +140,15 @@ test_add = "git-annex add" ~: TestList [basic, sha1dup, subdirs] changeWorkingDirectory "dir" git_annex "add" ["-q", "../dir2"] @? "add of ../subdir failed" -test_setkey :: Test -test_setkey = "git-annex setkey/fromkey" ~: TestCase $ inmainrepo $ do +test_setcontent :: Test +test_setcontent = "git-annex setcontent/fromkey" ~: TestCase $ intmpclonerepo $ do + git_annex "drop" ["-q", "--force", sha1annexedfile] @? "drop failed" writeFile tmp $ content sha1annexedfile r <- annexeval $ Types.Backend.getKey backendSHA1 tmp let key = show $ fromJust r - git_annex "setkey" ["-q", "--key", key, tmp] @? "setkey failed" - git_annex "fromkey" ["-q", "--key", key, sha1annexedfile] @? "fromkey failed" - boolSystem "git" [Params "commit -q -a -m commit"] @? "git commit failed" - annexed_present sha1annexedfile + git_annex "setcontent" ["-q", tmp, sha1annexedfile] @? "setcontent failed" + git_annex "fromkey" ["-q", key, sha1annexedfiledup] @? "fromkey failed" + annexed_present sha1annexedfiledup where tmp = "tmpfile"