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
This commit is contained in:
parent
b08b9ed210
commit
3a14648142
10 changed files with 88 additions and 31 deletions
|
@ -186,7 +186,7 @@ toPerform dest removewhen key afile fastcheck isthere = do
|
|||
removeAnnex contentlock
|
||||
next $ do
|
||||
() <- setpresentremote
|
||||
Command.Drop.cleanupLocal key
|
||||
Command.Drop.cleanupLocal key (Command.Drop.DroppingUnused False)
|
||||
faileddrophere setpresentremote = do
|
||||
showLongNote "(Use --force to override this check, or adjust numcopies.)"
|
||||
showLongNote "Content not dropped from here."
|
||||
|
@ -199,7 +199,7 @@ toPerform dest removewhen key afile fastcheck isthere = do
|
|||
-- is present, but due to buffering, may find it present for the
|
||||
-- second file before the first is dropped. If so, nothing remains
|
||||
-- to be done except for cleaning up.
|
||||
lockfailed = next $ Command.Drop.cleanupLocal key
|
||||
lockfailed = next $ Command.Drop.cleanupLocal key (Command.Drop.DroppingUnused False)
|
||||
|
||||
fromStart :: RemoveWhen -> AssociatedFile -> Key -> ActionItem -> SeekInput -> Remote -> CommandStart
|
||||
fromStart removewhen afile key ai si src =
|
||||
|
@ -262,7 +262,7 @@ fromPerform src removewhen key afile = do
|
|||
, "(" ++ reason ++ ")"
|
||||
]
|
||||
ok <- Remote.action (Remote.removeKey src key)
|
||||
next $ Command.Drop.cleanupRemote key src ok
|
||||
next $ Command.Drop.cleanupRemote key src (Command.Drop.DroppingUnused False) ok
|
||||
|
||||
faileddropremote = do
|
||||
showLongNote "(Use --force to override this check, or adjust numcopies.)"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue