summaryrefslogtreecommitdiff
path: root/Command.hs
Commit message (Collapse)AuthorAge
* --auto is no longer a global option; only get, drop, and copy accept it.Joey Hess2015-03-25
| | | | Not a behavior change unless you were passing it to a command that ignored it.
* The file matching options are now only accepted by commands that can ↵Joey Hess2015-02-06
| | | | actually use them.
* update my email address and homepage urlJoey Hess2015-01-21
|
* replace (Key, Backend) with KeyJoey Hess2014-04-17
| | | | | | | | | | Only fsck and reinject and the test suite used the Backend, and they can look it up as needed from the Key. This simplifies the code and also speeds it up. There is a small behavior change here. Before, all commands would warn when acting on an annexed file with an unknown backend. Now, only fsck and reinject show that warning.
* more hlintJoey Hess2014-02-11
|
* avoid using function named that conflicts with name used in newer version of ↵Joey Hess2014-01-29
| | | | process library
* reorganize some files and importsJoey Hess2014-01-26
|
* reorganize numcopies code (no behavior changes)Joey Hess2014-01-21
| | | | | | | Move stuff into Logs.NumCopies. Add a NumCopies newtype. Better names for various serialization classes that are specific to one thing or another.
* global numcopies settingJoey Hess2014-01-20
| | | | | | | | | | | | | | | | | | | | | | | * numcopies: New command, sets global numcopies value that is seen by all clones of a repository. * The annex.numcopies git config setting is deprecated. Once the numcopies command is used to set the global number of copies, any annex.numcopies git configs will be ignored. * assistant: Make the prefs page set the global numcopies. This global numcopies setting is needed to let preferred content expressions operate on numcopies. It's also convenient, because typically if you want git-annex to preserve N copies of files in a repo, you want it to do that no matter which repo it's running in. Making it global avoids needing to warn the user about gotchas involving inconsistent annex.numcopies settings. (See changes to doc/numcopies.mdwn.) Added a new variety of git-annex branch log file, that holds only 1 value. Will probably be useful for other stuff later. This commit was sponsored by Nicolas Pouillard.
* export cleanupJoey Hess2014-01-20
|
* fix inversion of control in CommandSeek (no behavior changes)Joey Hess2014-01-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | I've been disliking how the command seek actions were written for some time, with their inversion of control and ugly workarounds. The last straw to fix it was sync --content, which didn't fit the Annex [CommandStart] interface well at all. I have not yet made it take advantage of the changed interface though. The crucial change, and probably why I didn't do it this way from the beginning, is to make each CommandStart action be run with exceptions caught, and if it fails, increment a failure counter in annex state. So I finally remove the very first code I wrote for git-annex, which was before I had exception handling in the Annex monad, and so ran outside that monad, passing state explicitly as it ran each CommandStart action. This was a real slog from 1 to 5 am. Test suite passes. Memory usage is lower than before, sometimes by a couple of megabytes, and remains constant, even when running in a large repo, and even when repeatedly failing and incrementing the error counter. So no accidental laziness space leaks. Wall clock speed is identical, even in large repos. This commit was sponsored by an anonymous bitcoiner.
* make "git annex help options" work outside a git repoJoey Hess2013-11-30
| | | | | | Option parsing for commands that run outside git repos is still screwy, as there is no Annex monad and so the flags cannot be passed in. But, any remaining parameters can be, which is enough for this fix.
* status: In local mode, displays information about variance from configured ↵Joey Hess2013-09-15
| | | | numcopies levels.
* find: Avoid polluting stdout with progress messages. Closes: #718186Joey Hess2013-07-30
|
* Make --numcopies override annex.numcopies set in .gitattributes.Joey Hess2013-07-09
|
* drop --auto: Fix bug that prevented dropping files from untrusted repositories.Joey Hess2013-04-01
| | | | This is a corresponding bug to the one I fixed yesterday in the assistant.
* add section metadata to all commandsJoey Hess2013-03-24
| | | | Not yet used .. mindless train work.
* convert notBareRepo to a CommandCheckJoey Hess2012-12-29
| | | | | | This avoids some small overhead by only running the check once per command; it also ensures that, even if the command doesn't find anything to run on, it still fails to run when in a bare repo.
* block all commands that don't work in direct modeJoey Hess2012-12-29
| | | | | I left status working in direct mode, although it doesn't show correct stats for known annex keys.
* add a guard against using git annex add in direct mode repoJoey Hess2012-12-24
| | | | | Currently, it deletes files when run in one, so until I get a chance to fix it, block foot shooting.
* --auto fixesJoey 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.
* correct commentJoey Hess2012-12-06
|
* where indentingJoey Hess2012-11-11
|
* better fix for zombie problem, which turns out to be a zombie ssh started by ↵Joey Hess2012-10-17
| | | | | | | | | | | | | | | | | | | | | rsync When rsyncProgress pipes rsync's stdout, this turns out to cause a ssh process started by rsync to be left behind as a zombie. I don't know why, but my recent zombie reaping cleanup was correct, it's just that this other zombie, that's not directly started by git-annex, was no longer reaped due to changes in the cleanup. Make rsyncProgress reap the zombie started by rsync, as a workaround. FWIW, the process tree looks like this. It seems like the rsync child is for some reason starting but not waiting on this extra ssh process. Ssh connection caching may be involved -- disabling it seemed to change the shape of the tree, but did not eliminate the zombie. 9378 pts/14 S+ 0:00 | \_ rsync -p --progress --inplace -4 -e 'ssh' '-S' ... 9379 pts/14 S+ 0:00 | | \_ ssh ... 9380 pts/14 S+ 0:00 | | \_ rsync -p --progress --inplace -4 -e 'ssh' '-S' ... 9381 pts/14 Z+ 0:00 | \_ [ssh] <defunct>
* Fix zombie cleanup reversion introduced in 3.20121009.Joey Hess2012-10-16
|
* generalized Annex.WantedJoey Hess2012-10-08
| | | | | this should make it easy to use from inside the assistant, where everything is an AssociatedFile.
* make copy --to check preferred content of the remoteJoey Hess2012-10-08
|
* drop --auto --from with preferred contentJoey Hess2012-10-08
| | | | | With --from, it needs to examine the preferred content of the repository being dropped from, instead of the local repository.
* wired preferred content up to get, copy, and drop --autoJoey Hess2012-10-08
|
* more descriptive name for oneshotJoey Hess2012-09-15
|
* copy, drop: Avoid checking numcopies attribute unnecessarilyJoey Hess2012-07-10
|
* added ifM and nuked 11 lines of codeJoey Hess2012-03-14
| | | | no behavior changes
* set oneshot mode on a per-command basisJoey Hess2012-02-14
| | | | Avoids ugly (and test suite failing) hack in Command.Version
* rework git check-attr interfaceJoey 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 loopJoey Hess2012-01-10
| | | | A PITA but worth it to clean up the trust configuration code.
* tweakJoey Hess2012-01-06
|
* per-command optionsJoey Hess2012-01-05
| | | | | | Finally commands can define their own options. Moved --format and --print0 to be options only of find.
* type alias cleanupJoey Hess2011-12-31
|
* factor out a stopUnlessJoey Hess2011-12-09
| | | | code melt for lunch
* hslintJoey Hess2011-12-09
|
* add: If interrupted, add can leave files converted to symlinks but not yet ↵Joey Hess2011-12-07
| | | | added to git. Running the add again will now clean up this situtation.
* tweakJoey Hess2011-11-19
|
* When not run in a git repository, git-annex can still display a usage ↵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.
* lintJoey Hess2011-11-11
|
* better limiting of start actions to only run whenAnnexedJoey Hess2011-11-10
| | | | | Mostly only refactoring, but this does remove one redundant stat of the symlink by copy.
* reorder repo parameters lastJoey 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.
* cleanupJoey Hess2011-10-31
|
* refactoring and cleanupJoey Hess2011-10-30
| | | | No code changes.
* refactorJoey Hess2011-10-29
|
* fsck: Now works in bare repositories.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.