git-annex/Annex
Joey Hess 3159da2693 Add and use numcopiesneeded preferred content expression.
* Add numcopiesneeded preferred content expression.
* Client, transfer, incremental backup, and archive repositories
  now want to get content that does not yet have enough copies.

This means the asssistant will make copies of files that don't yet
meet the configured numcopies, even to places that would not normally want
the file.

For example, if numcopies is 4, and there are 2 client repos and
2 transfer repos, and 2 removable backup drives, the file will be sent
to both transfer repos in order to make 4 copies. Once a removable drive
get a copy of the file, it will be dropped from one transfer repo or the
other (but not both).

Another example, numcopies is 3 and there is a client that has a backup
removable drive and two small archive repos. Normally once one of the small
archives has a file, it will not be put into the other one. But, to satisfy
numcopies, the assistant will duplicate it into the other small archive
too, if the backup repo is not available to receive the file.

I notice that these examples are fairly unlikely setups .. the old behavior
was not too bad, but it's nice to finally have it really correct.

.. Almost. I have skipped checking the annex.numcopies .gitattributes
out of fear it will be too slow.

This commit was sponsored by Florian Schlegel.
2014-01-20 17:35:29 -04:00
..
Branch global numcopies setting 2014-01-20 16:47:56 -04:00
Content Direct mode .git/annex/objects directories are no longer left writable 2013-11-15 14:52:03 -04:00
Direct fix reversion in relative paths to local remotes of direct mode repos 2013-11-26 19:33:26 -04:00
Branch.hs avoid needing a build-dep on hxt for Data.AssocList 2014-01-14 16:42:10 -04:00
BranchState.hs remove git-annex branch read cache 2012-10-19 14:25:15 -04:00
CatFile.hs Add plumbing-level lookupkey command. 2013-12-15 14:02:23 -04:00
CheckAttr.hs finished where indentation changes 2012-12-13 00:24:19 -04:00
CheckIgnore.hs hlint 2013-09-25 03:09:06 -04:00
Content.hs also check diskreserve for quvi downloads 2014-01-04 15:38:59 -04:00
Direct.hs Fix direct mode's handling when modifications to non-annexed files are pulled from a remote. A bug prevented the files from being updated in the work tree, and this caused the modification to be reverted. 2013-12-12 15:57:09 -04:00
Drop.hs global numcopies setting 2014-01-20 16:47:56 -04:00
Environment.hs hlint 2013-09-25 03:09:06 -04:00
Exception.hs fix standalone build of this module 2013-11-22 12:21:37 -04:00
FileMatcher.hs Add and use numcopiesneeded preferred content expression. 2014-01-20 17:35:29 -04:00
Hook.hs refactored hook setup 2013-11-05 15:29:56 -04:00
Journal.hs use types to partially prove correctness of journal locking code 2013-10-03 14:41:57 -04:00
Link.hs hlint 2013-09-25 03:09:06 -04:00
LockPool.hs squash compiler warnings on Windows 2013-08-04 13:18:05 -04:00
Path.hs move programPath out of Config.Files to Annex.Path 2013-11-24 16:03:03 -04:00
Perms.hs Ensure execute bit is set on directories when core.sharedrepsitory is set. 2013-11-18 18:13:09 -04:00
Queue.hs type based git config handling for remotes 2013-01-01 13:58:14 -04:00
Quvi.hs hlint 2013-09-25 03:09:06 -04:00
ReplaceFile.hs Fix a few bugs involving filenames that are at or near the filesystem's maximum filename length limit. 2013-07-30 19:18:29 -04:00
Ssh.hs run ssh in the directory with its socket when stopping 2013-10-06 21:11:39 -04:00
TaggedPush.hs sync, assistant: Force push of the git-annex branch. 2013-08-29 14:27:53 -04:00
Url.hs Send a git-annex user-agent when downloading urls. 2013-09-28 14:35:21 -04:00
UUID.hs automatically derive an annex-uuid from a gcrypt-uuids 2013-09-05 16:02:39 -04:00
Version.hs Auto-upgrade v3 indirect repos to v5 with no changes. This also fixes a problem when a direct mode repo was somehow set to v3 rather than v4, and so the automatic direct mode upgrade to v5 was not done. 2013-12-29 13:06:23 -04:00
Wanted.hs add --want-get and --want-drop options 2013-10-28 14:50:17 -04:00