summaryrefslogtreecommitdiff
path: root/Command.hs
Commit message (Collapse)AuthorAge
* added ifM and nuked 11 lines of codeGravatar Joey Hess2012-03-14
| | | | no behavior changes
* set oneshot mode on a per-command basisGravatar Joey Hess2012-02-14
| | | | Avoids ugly (and test suite failing) hack in Command.Version
* rework git check-attr interfaceGravatar Joey Hess2012-02-13
| | | | | | | | | | | | | | | Now gitattributes are looked up, efficiently, in only the places that really need them, using the same approach used for cat-file. The old CheckAttr code seemed very fragile, in the way it streamed files through git check-attr. I actually found that cad8824852aa0623dc41eac02a9e2bae47d88ec4 was still deadlocking with ghc 7.4, at the end of adding a lot of files. This should fix that problem, and avoid future ones. The best part is that this removes withAttrFilesInGit and withNumCopies, which were complicated Seek methods, as well as simplfying the types for several other Seek methods that had a Backend tupled in.
* break module dependancy loopGravatar Joey Hess2012-01-10
| | | | A PITA but worth it to clean up the trust configuration code.
* tweakGravatar Joey Hess2012-01-06
|
* per-command optionsGravatar Joey Hess2012-01-05
| | | | | | Finally commands can define their own options. Moved --format and --print0 to be options only of find.
* type alias cleanupGravatar Joey Hess2011-12-31
|
* factor out a stopUnlessGravatar Joey Hess2011-12-09
| | | | code melt for lunch
* hslintGravatar Joey Hess2011-12-09
|
* add: If interrupted, add can leave files converted to symlinks but not yet ↵Gravatar Joey Hess2011-12-07
| | | | added to git. Running the add again will now clean up this situtation.
* tweakGravatar Joey Hess2011-11-19
|
* When not run in a git repository, git-annex can still display a usage ↵Gravatar Joey Hess2011-11-16
| | | | | | | message, and "git annex version" even works. Things that sound simple, but are made hard by the Annex monad being built with the assumption that there will always be a git repo.
* lintGravatar Joey Hess2011-11-11
|
* better limiting of start actions to only run whenAnnexedGravatar Joey Hess2011-11-10
| | | | | Mostly only refactoring, but this does remove one redundant stat of the symlink by copy.
* reorder repo parameters lastGravatar Joey Hess2011-11-08
| | | | | | | | | | | | | Many functions took the repo as their first parameter. Changing it consistently to be the last parameter allows doing some useful things with currying, that reduce boilerplate. In particular, g <- gitRepo is almost never needed now, instead use inRepo to run an IO action in the repo, and fromRepo to get a value from the repo. This also provides more opportunities to use monadic and applicative combinators.
* cleanupGravatar Joey Hess2011-10-31
|
* refactoring and cleanupGravatar Joey Hess2011-10-30
| | | | No code changes.
* refactorGravatar Joey Hess2011-10-29
|
* fsck: Now works in bare repositories.Gravatar Joey Hess2011-10-29
| | | | | | | | | Checks location log information, and file contents. Does not check that numcopies is satisfied, as .gitattributes information about numcopies is not available in a bare repository. In practice, that should not be a problem, since fsck is also run in a checkout and will check numcopies there.
* clean up check selection codeGravatar Joey Hess2011-10-29
| | | | | | | | | This new approach allows filtering out checks from the default set that are not appropriate for a command, rather than having to list every check that is appropriate. It also reduces some boilerplate. Haskell does not define Eq for functions, so I had to go a long way around with each check having a unique id. Meh.
* Fail if --from or --to is passed to commands that do not support them.Gravatar Joey Hess2011-10-27
|
* refactored and generalized pre-command sanity checkingGravatar Joey Hess2011-10-27
|
* reorganize log modulesGravatar Joey Hess2011-10-15
| | | | no code changes
* git-annex-shell uuid verificationGravatar Joey Hess2011-10-06
| | | | | | | | | | | * git-annex now asks git-annex-shell to verify that it's operating in the expected repository. * Note that this git-annex will not interoperate with remotes using older versions of git-annex-shell. The reason for this check is to avoid git-annex getting confused about what remote repository actually contains a value. It's a prerequisite for supporting git insteadOf aliases.
* 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
|
* reorgGravatar Joey Hess2011-09-19
|
* refactorGravatar Joey Hess2011-09-18
|
* 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.
* 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.
* tweakGravatar Joey Hess2011-09-15
|
* remove command type definitionsGravatar Joey Hess2011-09-15
| | | | | | | These were a mistake, they make the type signatures harder to read and less flexible. The CommandSeek, CommandStart, CommandPerform, and CommandCleanup types were a good idea, but composing them with the parameters expected is going too far.
* move annex.numcopies parsing into withNumCopiesGravatar Joey Hess2011-09-15
|
* bugfix: drop and fsck did not honor --excludeGravatar Joey Hess2011-09-15
|
* clean up params in usage displayGravatar Joey Hess2011-09-15
|
* remove optimize subcommand; use --auto insteadGravatar Joey Hess2011-09-15
| | | | | | | | | | | | | | | | | | get, drop: Added --auto option, which decides whether to get/drop content as needed to work toward the configured numcopies. The problem with bundling it up in optimize was that I then found I wanted to run an optmize that did not drop files, only got them. Considered adding a --only-get switch to it, but that seemed wrong. Instead, let's make existing subcommands optionally smarter. Note that the only actual difference between drop and drop --auto is that the latter does not even try to drop a file if it knows of not enough copies, and does not print any error messages about files it was unable to drop. It might be nice to make get avoid asking git for attributes when not in auto mode. For now it always asks for attributes.
* fix synopsisGravatar Joey Hess2011-09-15
|
* optimize: A new subcommand that either gets or drops file content as needed ↵Gravatar Joey Hess2011-09-14
| | | | | | | | to work toward meeting the configured numcopies setting. This is currently rather simplistic, though still useful. In the future, it could become smarter about what content is stored where, etc.
* Improve display of newlines around error and warning messages.Gravatar Joey Hess2011-09-06
|
* code simplification thanks to applicative functorsGravatar Joey Hess2011-08-25
|
* avoid namespace conflictGravatar Joey Hess2011-08-16
|
* unify elipsis handlingGravatar Joey Hess2011-07-19
| | | | | And add a simple dots-based progress display, currently only used in v2 upgrade.
* hlint tweaksGravatar Joey Hess2011-07-15
| | | | Did all sources except Remotes/* and Command/*
* better display of thrown errorsGravatar Joey Hess2011-07-05
|
* renamed GitRepo to GitGravatar Joey Hess2011-06-30
| | | | It was always imported qualified as Git anyway
* factor out file list stuff from GitRepoGravatar Joey Hess2011-06-29
| | | | | GitRepo is getting too large an interface; these all fit nicely into a submodule.
* Merge branch 'master' into v3Gravatar Joey Hess2011-06-29
|\ | | | | | | | | Conflicts: debian/changelog
| * --force will cause add, etc, to operate on ignored files.Gravatar Joey Hess2011-06-29
| |