summaryrefslogtreecommitdiff
path: root/Limit.hs
Commit message (Collapse)AuthorAge
* New annex.largefiles setting, which configures which files `git annex add` ↵Gravatar Joey Hess2013-03-29
| | | | | | | | | | | | | and the assistant add to the annex. I would have sort of liked to put this in .gitattributes, but it seems it does not support multi-word attribute values. Also, making this a single config setting makes it easy to only parse the expression once. A natural next step would be to make the assistant `git add` files that are not annex.largefiles. OTOH, I don't think `git annex add` should `git add` such files, because git-annex command line tools are not in the business of wrapping git command line tools.
* linelengthGravatar Joey Hess2013-03-12
|
* Switch from using regex-compat to regex-tdfa, as the C regex library is ↵Gravatar Joey Hess2013-03-08
| | | | rather buggy.
* fix * glob matching files in subdirectoriesGravatar Joey Hess2013-02-26
|
* deal with Glob/filemanip conflictGravatar Joey Hess2013-02-16
|
* Now uses the Haskell Glob library, rather than pcre-light, avoiding the need ↵Gravatar Joey Hess2013-02-11
| | | | to install libpcre. Currently done only for Cabal or when the Makefile is made to use -DWITH_GLOB
* can now build Android targeted binaryGravatar Joey Hess2013-02-10
| | | | | | | | | | | | | | | | Various things that don't work on Android are just ifdefed out. * the webapp (needs template haskell for arm) * --include and --exclude globbing (needs libpcre, which is not ported; probably I'll make it use the pure haskell glob library instead) * annex.diskreserve checking (missing sys/statvfs.h) * timestamp preservation support (yawn) * S3 * WebDAV * XMPP The resulting 17mb binary has been tested on Android, and it is able to, at least, print its usage message.
* --auto fixesGravatar Joey Hess2012-12-06
| | | | | | | * get/copy --auto: Transfer data even if it would exceed numcopies, when preferred content settings want it. * drop --auto: Fix dropping content when there are no preferred content settings.
* more indentation. must stop.Gravatar Joey Hess2012-10-28
|
* fix warningGravatar Joey Hess2012-10-20
|
* Replace "in=" with "present" in preferred content expressionsGravatar Joey Hess2012-10-19
| | | | | | | | | | | | in= was problimatic in two ways. First, it referred to a remote by name, but preferred content expressions can be evaluated elsewhere, where that remote doesn't exist, or a different remote has the same name. This name lookup code could error out at runtime. Secondly, in= seemed pretty useless. in=here did not cause content to be gotten, but it did let present content be dropped. present is more useful, although "not present" is unstable and should be avoided.
* Preferred content path matching bugfix.Gravatar Joey Hess2012-10-17
| | | | | | | When in a subdir, both the normal filepath, and the filepath relative to the top of the git repo are needed for matching. The former for key lookup, and the latter for include/exclude to match against. Previously, key lookup didn't work in this situation.
* rename --ingroup to --inallgroupGravatar Joey Hess2012-10-10
|
* add --ingroup limitGravatar Joey Hess2012-10-08
|
* Added --smallerthan and --largerthan limitsGravatar Joey Hess2012-10-08
|
* add AssumeNotPresent parameter to limitsGravatar Joey Hess2012-10-05
| | | | | | | | | | | | | Solves the issue with preferred content expressions and dropping that I mentioned yesterday. My solution was to add a parameter to specify a set of repositories where content should be assumed not to be present. When deciding whether to drop, it can put the current repository in, and then if the expression fails to match, the content can be dropped. Using yesterday's example "(not copies=trusted:2) and (not in=usbdrive)", when the local repo is one of the 2 trusted copies, the drop check will see only 1 trusted copy, so the expression matches, and so the content will not be dropped.
* added preferred-content log, and allow editing it with vicfgGravatar Joey Hess2012-10-04
| | | | | | | | | | | | | | This includes a full parser for the boolean expressions in the log, that compiles them into Matchers. Those matchers are not used yet. A complication is that matching against an expression should never crash git-annex with an error. Instead, vicfg checks that the expressions parse. If a bad expression (or an expression understood by some future git-annex version) gets into the log, it'll be ignored. Most of the code in Limit couldn't fail anyway, but I did have to make limitCopies check its parameter first, and return an error if it's bad, rather than erroring at runtime.
* vicfg: New command, allows editing (or simply viewing) most of the ↵Gravatar Joey Hess2012-10-03
| | | | | | | | | | | repository configuration settings stored in the git-annex branch. Incomplete; I need to finish parsing and saving. This will also be used for editing transfer control expresssions. Removed the group display from the status output, I didn't really like that format, and vicfg can be used to see as well as edit rempository group membership.
* A way to match files in repositories in a groupGravatar Joey Hess2012-10-01
| | | | | --copies=group:number can now be used to match files that are present in a specified number of repositories in a group.
* New --time-limit option, makes long git-annex commands stop after a ↵Gravatar Joey Hess2012-09-25
| | | | specified amount of time.
* changelog and minor cleanup to fix mixed spaces/tabsGravatar Joey Hess2012-09-23
|
* Limiting the number of copies per trustlevelGravatar Nicolas Pouillard2012-09-23
| | | | | | | | The --copies flag now takes an argument of the form: trustlevel:number or number If a trust level is specified the command is limited to files with at least 'number' copies of this 'trustlevel'.
* rename readMaybe to readishGravatar Joey Hess2012-01-23
| | | | a stricter (but also partial) readMaybe is getting added to base
* break module dependancy loopGravatar Joey Hess2012-01-10
| | | | A PITA but worth it to clean up the trust configuration code.
* Add --include, which is the same as --not --exclude.Gravatar Joey Hess2011-12-22
|
* --inbackend can be used to make git-annex only operate on files whose ↵Gravatar Joey Hess2011-11-28
| | | | content is stored using a specified key-value backend.
* playing with >=>Gravatar Joey Hess2011-10-31
| | | | | Apparently in haskell if you teach a man to fish, he'll write more pointfree code.
* reorganize log modulesGravatar Joey Hess2011-10-15
| | | | no code changes
* minor syntax changesGravatar Joey Hess2011-10-11
|
* renameGravatar Joey Hess2011-10-05
|
* renameGravatar Joey Hess2011-10-04
|
* factor out common importsGravatar Joey Hess2011-10-03
| | | | no code changes
* go go gadget hlintGravatar Joey Hess2011-09-20
|
* convert Token to have separate constructors for each peice of syntaxGravatar Joey Hess2011-09-20
|
* tweakGravatar Joey Hess2011-09-19
|
* special case for --in .Gravatar Joey Hess2011-09-19
| | | | | | Do not need to check the location log in this case, can just check inAnnex. This is both an optimisation and perhaps a correctness measure (fsck --in . should fsck files even if the location log is damaged.)
* golfGravatar Joey Hess2011-09-19
|
* fix memory leakGravatar Joey Hess2011-09-18
| | | | | | | | | | | | | | | | filterM is not a good idea if you were streaming in a large list of files. Fixing this memory leak that I introduced earlier today was a PITA because to avoid the filterM, it's necessary to do the filtering only after building up the data structures like BackendFile, and that means each separate data structure needs it own function to apply the filter, at least in this naive implementation. There is also a minor performance regression, when using copy/drop/get/fsck with a filter, git is now asked to look up attributes for all files, since that now comes before the filter is applied. This is only a very minor thing, since getting the attributes is very fast and --exclude was probably not typically used to speed it up.
* make find show files meeting limits, even when not presentGravatar Joey Hess2011-09-18
| | | | | | | | | find: Rather than only showing files whose contents are present, when used with --exclude --copies or --in, displays all files that match the specified conditions. Note that this is a behavior change for find --exclude! Old behavior can be gotten with find --in . --exclude=...
* --copies=N can be used to make git-annex only operate on files with the ↵Gravatar Joey Hess2011-09-18
| | | | | | specified number of copies. (And --not --copies=N for the inverse.)
* add --in limitGravatar Joey Hess2011-09-18
|
* add --and --or --not -( and -)Gravatar Joey Hess2011-09-18
| | | | | | | | I dislike -( and -), but without using a different option parser, can't easily use bare parens. --and and --or will become more useful once there are more interesting limits than --exclude
* refactor --exclude to use Utility.MatcherGravatar Joey Hess2011-09-18
This should change no behavior, but opens the poissibility to use the matcher for other sorts of limits on which files git-annex processes.