remove optimize subcommand; use --auto instead

get, drop: Added --auto option, which decides whether to get/drop content
as needed to work toward the configured numcopies.

The problem with bundling it up in optimize was that I then found I wanted
to run an optmize that did not drop files, only got them. Considered adding
a --only-get switch to it, but that seemed wrong. Instead, let's make
existing subcommands optionally smarter.

Note that the only actual difference between drop and drop --auto is that
the latter does not even try to drop a file if it knows of not enough
copies, and does not print any error messages about files it was unable to
drop.

It might be nice to make get avoid asking git for attributes when not in
auto mode. For now it always asks for attributes.
This commit is contained in:
Joey Hess 2011-09-15 13:30:04 -04:00
parent 81984e60ac
commit 984c9fc052
13 changed files with 92 additions and 78 deletions

12
test.hs
View file

@ -93,7 +93,6 @@ blackbox = TestLabel "blackbox" $ TestList
, test_unannex
, test_drop
, test_get
, test_optimize
, test_move
, test_copy
, test_lock
@ -217,17 +216,6 @@ test_get = "git-annex get" ~: TestCase $ intmpclonerepo $ do
inmainrepo $ unannexed ingitfile
unannexed ingitfile
test_optimize :: Test
test_optimize = "git-annex optimize" ~: TestCase $ intmpclonerepo $ do
inmainrepo $ annexed_present annexedfile
annexed_notpresent annexedfile
git_annex "optimize" ["-q", annexedfile, "--numcopies=2"] @? "optimize of file failed"
inmainrepo $ annexed_present annexedfile
annexed_present annexedfile
git_annex "optimize" ["-q", annexedfile] @? "optimize of file failed"
inmainrepo $ annexed_present annexedfile
annexed_notpresent annexedfile
test_move :: Test
test_move = "git-annex move" ~: TestCase $ intmpclonerepo $ do
annexed_notpresent annexedfile