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
|
@ -1,3 +1,5 @@
|
|||
When you want to dead a file in your checkout, you can only do so via the key of the file. You can find the corresponding key with a bit of bash like this: `git annex dead --key $(basename $(readlink file))` but that shouldn't be necessary IMO.
|
||||
|
||||
It'd be a lot better if you could just dead files like this: `git annex dead --file file` or even like this: `git annex dead --file file1 file2 file3 otherfiles.*` (or maybe even like this: `git annex dead --file file1 file2 --key $key1 $key2`).
|
||||
|
||||
> [[done]] in another way --[[Joey]]
|
||||
|
|
|
@ -0,0 +1,26 @@
|
|||
[[!comment format=mdwn
|
||||
username="joey"
|
||||
subject="""comment 2"""
|
||||
date="2021-06-25T18:22:04Z"
|
||||
content="""
|
||||
In <https://git-annex.branchable.com/forum/Forget_about_accidentally_added_file__63__/>
|
||||
there is an idea of `git annex unannex --forget file`
|
||||
|
||||
And using unannex for this makes some sense; it's intended to be used to undo an
|
||||
accidental `git-annex add`. When it's used that way, and later `git-annex
|
||||
unused` finds the object file is not used by anything and the object gets
|
||||
deleted, fsck --all will start complaining about it.
|
||||
|
||||
But there are still many ways it could go wrong. Being run recursively by
|
||||
accident. Or another file, perhaps in another branch, using the same key,
|
||||
which gets marked as dead.
|
||||
|
||||
Hmm, `git annex dropunused` (or `drop --unused`)
|
||||
could mark the key as dead. At that point it's known to be unused.
|
||||
|
||||
This way, the existing workflow of git-annex unannex followed by git-annex
|
||||
unused followed by dropping can be followed, and fsck --all does
|
||||
not later complain about the key.
|
||||
|
||||
Done!
|
||||
"""]]
|
Loading…
Add table
Add a link
Reference in a new issue