dropping unused marks as dead
authorJoey Hess <joeyh@joeyh.name>
Fri, 25 Jun 2021 19:22:05 +0000 (15:22 -0400)
committerJoey Hess <joeyh@joeyh.name>
Fri, 25 Jun 2021 19:22:26 +0000 (15:22 -0400)
commit3a1464814256ebd41b8300bf053f550bc22bfe51
tree32ef902422f925a438ec8102db80f5ca1b837d1d
parentb08b9ed21089dd4bc9406cc2095d805146c31ca8
dropping unused marks as dead

Dropping an object with drop --unused or dropunused will mark it as
dead, preventing fsck --all from complaining about it after it's been
dropped from all repositories.

If another repository still has a copy, it won't be treated as dead
until it's also dropped from there.

The drop has to use --unused, can't be --key or something else, because
this indicates that the user has recently ran git-annex unused. If it
checked the unused log on every drop, bad things would happen when the
unused log was out of date, eg a file used to be unused but then got
re-added. Marking such a file as dead could be confusing. When the user
uses --unused/dropunused, they must consider the unused information to be
up-to-date.

The particular workflow this enables is:

git annex add foo
git annex unannex foo
git annex unused
git annex drop --unused / dropunused
git annex fsck --all # no warnings

The docs for git-annex unannex say to use git-annex unused and dropunused,
so the user should be pointed in this direction when they want to undo an
accidental add.

Sponsored-by: Brock Spratlen on Patreon
Annex/Drop.hs
CHANGELOG
Command/Drop.hs
Command/DropUnused.hs
Command/Mirror.hs
Command/Move.hs
doc/forum/Forget_about_accidentally_added_file__63__/comment_9_23cc8cec09f9e8fb56c0cb81c9b361bc._comment [new file with mode: 0644]
doc/git-annex-dropunused.mdwn
doc/todo/dead_files_in_checkout_directly.mdwn
doc/todo/dead_files_in_checkout_directly/comment_2_d70c820666b291c532f7814ca543a77a._comment [new file with mode: 0644]