git-annex/Assistant
Joey Hess d266a41f8d
prevent numcopies or mincopies being configured to 0
Ignore annex.numcopies set to 0 in gitattributes or git config, or by
git-annex numcopies or by --numcopies, since that configuration would make
git-annex easily lose data. Same for mincopies.

This is a continuation of the work to make data only be able to be lost
when --force is used. It earlier led to the --trust option being disabled,
and similar reasoning applies here.

Most numcopies configs had docs that strongly discouraged setting it to 0
anyway. And I can't imagine a use case for setting to 0. Not that there
might not be one, but it's just so far from the intended use case of
git-annex, of managing and storing your data, that it does not seem like
it makes sense to cater to such a hypothetical use case, where any
git-annex drop can lose your data at any time.

Using a smart constructor makes sure every place avoids 0. Note that this
does mean that NumCopies is for the configured desired values, and not the
actual existing number of copies, which of course can be 0. The name
configuredNumCopies is used to make that clear.

Sponsored-by: Brock Spratlen on Patreon
2022-03-28 15:20:34 -04:00
..
Alert update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Install hush build warning on OSX 2020-11-13 13:34:34 -04:00
Pairing comment typo 2021-04-08 13:08:01 -04:00
Threads fold parseLinkTarget into parseLinkTargetOrPointer 2022-02-23 12:30:32 -04:00
Types start splitting out readonly values from AnnexState 2021-04-02 15:51:44 -04:00
WebApp prevent numcopies or mincopies being configured to 0 2022-03-28 15:20:34 -04:00
Alert.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
BranchChange.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Changes.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Commits.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Common.hs use fastDebug everywhere it can be used 2021-04-06 15:41:24 -04:00
CredPairCache.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
DaemonStatus.hs switch from hslogger to purpose-built Utility.Debug 2021-04-05 13:40:31 -04:00
DeleteRemote.hs handle Annex.Branch.files with read-only unmerged git-annex branches 2021-12-27 15:28:31 -04:00
Drop.hs add SeekInput (not yet used) 2020-09-15 15:41:13 -04:00
Fsck.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Gpg.hs be stricter about rejecting invalid configurations for remotes 2020-01-10 14:52:48 -04:00
Install.hs finished this stage of the RawFilePath conversion 2020-11-06 14:10:58 -04:00
MakeRemote.hs renameremote: Better handling of case where there are multiple special remotes with a name 2022-01-05 15:24:02 -04:00
MakeRepo.hs work around strange auto-init bug 2021-07-30 18:36:03 -04:00
Monad.hs turn of PackageImports in cabal file 2022-02-25 13:16:36 -04:00
NamedThread.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Pairing.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Pushes.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
RemoteControl.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Repair.hs switch from hslogger to purpose-built Utility.Debug 2021-04-05 13:40:31 -04:00
RepoProblem.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Restart.hs finished this stage of the RawFilePath conversion 2020-11-04 14:20:37 -04:00
ScanRemotes.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Ssh.hs more RawFilePath conversion 2020-11-05 18:45:37 -04:00
Sync.hs merge git-annex branch in memory in read-only repository 2021-12-27 13:21:15 -04:00
TransferQueue.hs cache the serialization of a Key 2019-11-22 17:49:16 -04:00
TransferSlots.hs simplify annex.stalldetection handling 2021-09-22 10:46:10 -04:00
Unused.hs avoid failure to lock content of removed file causing drop etc to fail 2020-07-25 11:59:33 -04:00
Upgrade.hs incremental verification for web special remote 2021-08-18 15:02:22 -04:00
WebApp.hs