diff options
author | Joey Hess <joeyh@joeyh.name> | 2017-02-07 17:35:51 -0400 |
---|---|---|
committer | Joey Hess <joeyh@joeyh.name> | 2017-02-07 17:41:58 -0400 |
commit | bed8555eb19c0107dca023c2048c3f401ac05610 (patch) | |
tree | a9ef3afe916f81fe9799b199c228dbc7909935b6 /Command | |
parent | 5a9e454ee8617e20edd468d8567c427cc0921c69 (diff) |
import: Changed how --deduplicate, --skip-duplicates, and --clean-duplicates determine if a file is a duplicate
Before, only content known to be present somewhere was considered a
duplicate. Now, any content that has been annexed before will be considered
a duplicate, even if all annexed copies of the data have been lost.
Note that --clean-duplicates and --deduplicate still check numcopies,
so won't delete duplicate files unless there's an annexed copy.
This makes import use the same method as reinject --known.
The man page already said that duplicate meant "its content is either
present in the local repository already, or git-annex knows of another
repository that contains it, or it was present in the annex before but has
been removed now". So, this is really only bringing the implementation into
line with the man page.
This commit was sponsored by Jochen Bartl on Patreon.
Diffstat (limited to 'Command')
-rw-r--r-- | Command/Import.hs | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/Command/Import.hs b/Command/Import.hs index a16349ad2..4b675475d 100644 --- a/Command/Import.hs +++ b/Command/Import.hs @@ -18,6 +18,7 @@ import Types.KeySource import Annex.CheckIgnore import Annex.NumCopies import Annex.FileMatcher +import Logs.Location cmd :: Command cmd = withGlobalOptions (jobsOption : jsonOption : fileMatchingOptions) $ notBareRepo $ @@ -136,7 +137,7 @@ start largematcher mode (srcfile, destfile) = let ks = KeySource srcfile srcfile Nothing v <- genKey ks backend case v of - Just (k, _) -> ifM (not . null <$> keyLocations k) + Just (k, _) -> ifM (isKnownKey k) ( return (maybe Nothing (\a -> Just (a k)) dupa) , return notdupa ) |