drop, move, mirror: when two files have the same content, honor the max numcopies and requiredcopies
Eg, before with a .gitattributes like: *.2 annex.numcopies=2 *.1 annex.numcopies=1 And foo.1 and foo.2 having the same content and key, git-annex drop foo.1 foo.2 would succeed, leaving just 1 copy, despite foo.2 needing 2 copies. It dropped foo.1 first and then skipped foo.2 since its content was gone. Now that the keys database includes locked files, this longstanding wart can be fixed. Sponsored-by: Noam Kremen on Patreon
This commit is contained in:
parent
0ed1369dcd
commit
d2be68907c
7 changed files with 24 additions and 30 deletions
|
@ -68,7 +68,7 @@ startKey o afile (si, key, ai) = case fromToOptions o of
|
|||
ToRemote r -> checkFailedTransferDirection ai Upload $ ifM (inAnnex key)
|
||||
( Command.Move.toStart Command.Move.RemoveNever afile key ai si =<< getParsed r
|
||||
, do
|
||||
(numcopies, mincopies) <- getAssociatedFileNumMinCopies afile
|
||||
(numcopies, mincopies) <- getSafestNumMinCopies afile key
|
||||
Command.Drop.startRemote pcc afile ai si numcopies mincopies key =<< getParsed r
|
||||
)
|
||||
FromRemote r -> checkFailedTransferDirection ai Download $ do
|
||||
|
@ -81,7 +81,7 @@ startKey o afile (si, key, ai) = case fromToOptions o of
|
|||
)
|
||||
Right False -> ifM (inAnnex key)
|
||||
( do
|
||||
(numcopies, mincopies) <- getAssociatedFileNumMinCopies afile
|
||||
(numcopies, mincopies) <- getSafestNumMinCopies afile key
|
||||
Command.Drop.startLocal pcc afile ai si numcopies mincopies key []
|
||||
, stop
|
||||
)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue