git-annex/doc
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
..
android
Android
assistant
automatic_conflict_resolution
backends
bare_repositories
bugs fix quickcheck test on windows 2022-03-22 13:53:55 -04:00
chunking
coding_style
contribute
copies
design
devblog comment 2021-11-09 16:04:54 -04:00
direct_mode
download
encryption
footer
forum removed 2022-03-21 17:00:33 +00:00
future_proofing
git-annex-add
git-annex-addurl
git-annex-adjust removed 2022-01-10 08:34:19 +00:00
git-annex-checkpresentkey
git-annex-config
git-annex-copy
git-annex-direct
git-annex-drop
git-annex-enableremote
git-annex-find
git-annex-import
git-annex-importfeed
git-annex-lookupkey
git-annex-metadata
git-annex-move
git-annex-p2p
git-annex-preferred-content
git-annex-reinject
git-annex-rmurl
git-annex-setpresentkey
git-annex-sync
git-annex-test
git-annex-unannex
git-annex-undo
git-annex-uninit
git-annex-unlock
git-annex-unused
git-annex-whereis
how_it_works
install
internals fully specify the pointer file format 2022-02-23 14:20:31 -04:00
license
links
metadata
news add news item for git-annex 10.20220322 2022-03-22 13:56:54 -04:00
not
polls
preferred_content
profiling
projects collapse lists of done items by default 2021-11-16 12:38:41 -04:00
required_content
scalability
security
special_remotes add back inode to directory special remote ContentIdentifier 2022-03-21 13:12:02 -04:00
stickers
submodules
sync
templates
testimonials
thanks update 2022-03-05 10:22:39 -04:00
tips commeent 2022-01-19 11:56:00 -04:00
todo Added a comment 2022-03-16 20:32:57 +00:00
trust
tuning
upgrades
use_case
users removed 2021-11-04 16:06:17 +00:00
videos
walkthrough
workflow
Android.mdwn document nix-on-droid as an alternative to termux 2022-03-07 12:57:16 -04:00
assistant.mdwn
automatic_conflict_resolution.mdwn
backends.mdwn
bare_repositories.mdwn
bugs.mdwn
builds.mdwn improve display of subframes 2022-01-27 14:36:40 -04:00
chunking.mdwn
coding_style.mdwn
comments.mdwn
contact.mdwn
contribute.mdwn
copies.mdwn
design.mdwn
devblog.mdwn
direct_mode.mdwn
distributed_version_control.mdwn
download.mdwn
encryption.mdwn
favicon.ico
forum.mdwn
future_proofing.mdwn
git-annex-add.mdwn
git-annex-addunused.mdwn
git-annex-addurl.mdwn
git-annex-adjust.mdwn improve docs 2021-11-12 14:08:36 -04:00
git-annex-assistant.mdwn
git-annex-benchmark.mdwn
git-annex-calckey.mdwn
git-annex-checkpresentkey.mdwn
git-annex-common-options.mdwn prevent numcopies or mincopies being configured to 0 2022-03-28 15:20:34 -04:00
git-annex-config.mdwn
git-annex-contentlocation.mdwn
git-annex-copy.mdwn
git-annex-dead.mdwn
git-annex-describe.mdwn
git-annex-diffdriver.mdwn
git-annex-direct.mdwn
git-annex-drop.mdwn document another behavior of --auto 2022-02-08 12:22:34 -04:00
git-annex-dropkey.mdwn
git-annex-dropunused.mdwn
git-annex-edit.mdwn
git-annex-enable-tor.mdwn fix name of option 2022-01-21 14:51:57 -04:00
git-annex-enableremote.mdwn
git-annex-examinekey.mdwn
git-annex-expire.mdwn
git-annex-export.mdwn
git-annex-filter-branch.mdwn
git-annex-filter-process.mdwn Avoid git status taking a long time after git-annex unlock of many files. 2022-02-18 15:06:40 -04:00
git-annex-find.mdwn
git-annex-findref.mdwn
git-annex-fix.mdwn
git-annex-forget.mdwn
git-annex-fromkey.mdwn
git-annex-fsck.mdwn
git-annex-fuzztest.mdwn
git-annex-get.mdwn
git-annex-group.mdwn
git-annex-groupwanted.mdwn
git-annex-import.mdwn
git-annex-importfeed.mdwn
git-annex-indirect.mdwn
git-annex-info.mdwn info: Allow using matching options in more situations 2022-02-21 14:46:07 -04:00
git-annex-init.mdwn clarify --version behavior on upgrade 2022-01-26 13:25:01 -04:00
git-annex-initremote.mdwn
git-annex-inprogress.mdwn
git-annex-list.mdwn
git-annex-lock.mdwn
git-annex-log.mdwn
git-annex-lookupkey.mdwn
git-annex-map.mdwn
git-annex-matchexpression.mdwn
git-annex-matching-expression.mdwn
git-annex-matching-options.mdwn
git-annex-merge.mdwn
git-annex-metadata.mdwn metadata --batch: Avoid crashing when a non-annexed file is input 2021-11-01 13:40:43 -04:00
git-annex-migrate.mdwn migrate: New --remove-size option 2021-11-12 13:28:28 -04:00
git-annex-mincopies.mdwn
git-annex-mirror.mdwn
git-annex-move.mdwn
git-annex-multicast.mdwn
git-annex-numcopies.mdwn
git-annex-p2p.mdwn
git-annex-post-receive.mdwn
git-annex-pre-commit.mdwn
git-annex-preferred-content.mdwn
git-annex-proxy.mdwn
git-annex-readpresentkey.mdwn
git-annex-registerurl.mdwn registerurl,unregisterurl: rework output and support --json 2022-02-14 13:29:20 -04:00
git-annex-reinit.mdwn
git-annex-reinject.mdwn
git-annex-rekey.mdwn migrate: New --remove-size option 2021-11-12 13:28:28 -04:00
git-annex-remotedaemon.mdwn
git-annex-renameremote.mdwn
git-annex-repair.mdwn
git-annex-required.mdwn
git-annex-resolvemerge.mdwn
git-annex-rmurl.mdwn
git-annex-schedule.mdwn
git-annex-semitrust.mdwn
git-annex-setkey.mdwn
git-annex-setpresentkey.mdwn
git-annex-shell.mdwn
git-annex-smudge.mdwn add git-annex filter-process 2021-11-04 15:02:36 -04:00
git-annex-status.mdwn
git-annex-sync.mdwn
git-annex-test.mdwn test: Added --jobs option 2022-03-16 14:42:07 -04:00
git-annex-testremote.mdwn
git-annex-transferkey.mdwn
git-annex-transferkeys.mdwn
git-annex-transferrer.mdwn
git-annex-trust.mdwn
git-annex-unannex.mdwn
git-annex-undo.mdwn
git-annex-ungroup.mdwn
git-annex-uninit.mdwn
git-annex-unlock.mdwn
git-annex-unregisterurl.mdwn registerurl,unregisterurl: rework output and support --json 2022-02-14 13:29:20 -04:00
git-annex-untrust.mdwn
git-annex-unused.mdwn
git-annex-upgrade.mdwn
git-annex-vadd.mdwn
git-annex-vcycle.mdwn
git-annex-version.mdwn
git-annex-vfilter.mdwn
git-annex-vicfg.mdwn
git-annex-view.mdwn
git-annex-vpop.mdwn
git-annex-wanted.mdwn
git-annex-watch.mdwn
git-annex-webapp.mdwn
git-annex-whereis.mdwn
git-annex-whereused.mdwn
git-annex.mdwn prevent numcopies or mincopies being configured to 0 2022-03-28 15:20:34 -04:00
git-remote-tor-annex.mdwn
git-union-merge.mdwn
how_it_works.mdwn
index.mdwn
install.mdwn
internals.mdwn fully specify the pointer file format 2022-02-23 14:20:31 -04:00
license.mdwn
location_tracking.mdwn
logo-old-bw.svg
logo-old.png
logo-old.svg
logo-old_small.png
logo.mdwn
logo.svg
logo_16x16.png
logo_32x32.png
logo_small.png
meta.mdwn
metadata.mdwn
news.mdwn
not.mdwn
polls.mdwn
preferred_content.mdwn
privacy.mdwn
profiling.mdwn
projects.mdwn
publicrepos.mdwn
related_software.mdwn
repomap.png
required_content.mdwn
scalability.mdwn
security.mdwn
shortcuts.mdwn
sidebar.mdwn
sitemap.mdwn
special_remotes.mdwn
stickers.mdwn
submodules.mdwn
summary.mdwn improve description 2022-01-06 12:24:27 -04:00
sync.mdwn
testimonials.mdwn
thanks.mdwn
tips.mdwn
todo.mdwn
transferring_data.mdwn
trust.mdwn
tuning.mdwn
upgrades.mdwn update, v9 upgrade not yet automatic 2022-01-21 12:36:13 -04:00
users.mdwn
videos.mdwn
walkthrough.mdwn
workflow.mdwn