summaryrefslogtreecommitdiff
path: root/GitAnnex.hs
Commit message (Collapse)AuthorAge
* fix permission damage (thanks, Windows)Gravatar Joey Hess2013-05-11
|
* git-annex now builds on Windows (doesn't work)Gravatar Joey Hess2013-05-11
|
* To enable an existing special remote, the new enableremote command must be ↵Gravatar Joey Hess2013-04-26
| | | | used. The initremote command now is used only to create new special remotes.
* rmurl: New command, removes one of the recorded urls for a file.Gravatar Joey Hess2013-04-22
|
* Per-command usage messages.Gravatar Joey Hess2013-03-27
|
* implement transferkeys plumbing commandGravatar Joey Hess2013-03-19
|
* linelengthGravatar Joey Hess2013-03-12
|
* typoGravatar Joey Hess2013-02-27
|
* disable test suite on AndroidGravatar Joey Hess2013-02-27
| | | | Cannot get QuickCheck to install just now.
* embed test suite into git annex; available by running: git annex testGravatar Joey Hess2013-02-27
| | | | | | | | | | | | | | I have seen some other programs do this, and think it's pretty cool. Means you can test wherever it's deployed, as well as at build time. My other reason for doing it is less happy. Cabal's handling of test suites sucks, requiring duplicated info, and even when that's done, it fails to preprocess hsc files here. Building it in avoids that and avoids having to explicitly tell cabal to enable test suites, which would then make it link the test executable every time, which is unnecessarily slow. This also has the benefit that now "make fast test" does a max speed build and tests it.
* type based git config handling for remotesGravatar Joey Hess2013-01-01
| | | | | Still a couple of places that use git config ad-hoc, but this is most of it done.
* type based git config handlingGravatar Joey Hess2012-12-29
| | | | | | | | | | | Now there's a Config type, that's extracted from the git config at startup. Note that laziness means that individual config values are only looked up and parsed on demand, and so we get implicit memoization for all of them. So this is not only prettier and more type safe, it optimises several places that didn't have explicit memoization before. As well as getting rid of the ugly explicit memoization code. Not yet done for annex.<remote>.* configuration settings.
* added direct and indirect commandsGravatar Joey Hess2012-12-13
|
* Amazon Glacier special remote; 100% workingGravatar Joey Hess2012-11-20
|
* fix build without XMPPGravatar Joey Hess2012-11-12
| | | | not sure if I'll keep bothering with this option
* where indentingGravatar Joey Hess2012-11-11
|
* add xmppgit command; roughed out xmpp push protocol and designGravatar Joey Hess2012-11-06
|
* add help commandGravatar Joey Hess2012-10-13
|
* rename --ingroup to --inallgroupGravatar Joey Hess2012-10-10
|
* add --ingroup limitGravatar Joey Hess2012-10-08
|
* Added --smallerthan and --largerthan limitsGravatar Joey Hess2012-10-08
|
* 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.
* group, ungroup: New commands to indicate groups of repositories.Gravatar Joey Hess2012-10-01
|
* New --time-limit option, makes long git-annex commands stop after a ↵Gravatar Joey Hess2012-09-25
| | | | specified amount of time.
* add transferkey commandGravatar Joey Hess2012-08-24
| | | | | | | Used by the assistant, rather than copy, this is faster because it avoids using git ls-files, avoids checking the location log redundantly, and runs in oneshot mode, avoiding making a commit to the git-annex branch for every file transferred.
* git annex webapp now opens a browser to the webappGravatar Joey Hess2012-07-25
| | | | Also, starts the assistant if it wasn't already running.
* Merge branch 'master' into assistantGravatar Joey Hess2012-07-02
|\
| * add fields to git-annex-shellGravatar Joey Hess2012-07-02
| |
* | Merge branch 'master' into assistantGravatar Joey Hess2012-06-26
|\| | | | | | | | | Conflicts: GitAnnex.hs
| * Version build dependency on STM, and allow building without it, which ↵Gravatar Joey Hess2012-06-26
| | | | | | | | disables the watch command.
* | add assistant commandGravatar Joey Hess2012-06-22
|/ | | | like watch, but more magic
* Merge branch 'master' into watchGravatar Joey Hess2012-06-04
|\
| * import: New subcommand, pulls files from a directory outside the annex and ↵Gravatar Joey Hess2012-05-31
| | | | | | | | | | | | adds them Use case for this was developed somewhere on the Transiberian Railroad.
| * Add support for core.worktree, and fix support for GIT_WORK_TREE and GIT_DIR.Gravatar Joey Hess2012-05-18
| | | | | | | | | | | | | | The environment needs to override git-config. Changed when git config is read, and avoid rereading it once it's been read. chdir for both worktree settings.
| * addunused: New command, the opposite of dropunused, it relinks unused ↵Gravatar Joey Hess2012-05-02
| | | | | | | | content into the git repository.
* | watch subcommandGravatar Joey Hess2012-04-12
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | So far this only handles auto-annexing new files that are created inside the repository while it's running. To make this really useful, it needs to at least: - notice deleted files and stage the deletion (tricky; there's a race with add..) - notice renamed files, auto-fix the symlink, and stage the new file location - periodically auto-commit staged changes - honor .gitignore, not adding files it excludes Also nice to have would be: - Somehow sync remotes, possibly using a push sync like dvcs-autosync does, so they are immediately updated. - Somehow get content that is unavilable. This is problimatic with inotify, since we only get an event once the user has tried (and failed) to read from the file. Perhaps instead, automatically copy content that is added out to remotes, with the goal of all repos eventually getting a copy, if df allows. - Drop files that have not been used lately, or meet some other criteria (as long as there's a copy elsewhere). - Perhaps automatically dropunused files that have been deleted, although I cannot see a way to do that, since by the time the inotify deletion event arrives, the file is deleted, and we cannot see what its symlink pointed to! Alternatievely, perhaps automatically do an expensive unused/dropunused cleanup process. Some of this probably needs the currently stateless threads to maintain a common state.
* autocorrectionGravatar Joey Hess2012-04-12
| | | | | | | git-annex (but not git-annex-shell) supports the git help.autocorrect configuration setting, doing fuzzy matching using the restricted Damerau-Levenshtein edit distance, just as git does. This adds a build dependency on the haskell edit-distance library.
* rekey: New plumbing level command, can be used to change the keys used for ↵Gravatar Joey Hess2012-02-16
| | | | files en masse.
* set oneshot mode on a per-command basisGravatar Joey Hess2012-02-14
| | | | Avoids ugly (and test suite failing) hack in Command.Version
* Avoid repeated location log commits when a remote is receiving files.Gravatar Joey Hess2012-01-28
| | | | | | | | | Done by adding a oneshot mode, in which location log changes are written to the journal, but not committed. Taking advantage of git-annex's existing ability to recover in this situation. This is used by git-annex-shell and other places where changes are made to a remote's location log.
* rename readMaybe to readishGravatar Joey Hess2012-01-23
| | | | a stricter (but also partial) readMaybe is getting added to base
* git-annex, git-union-merge: Support GIT_DIR and GIT_WORK_TREE.Gravatar Joey Hess2012-01-13
| | | | | Note that GIT_WORK_TREE cannot influence GIT_DIR; that is necessary for git-fake-bare and vcsh type things to work.
* log: New command that displays the location log for file, showing each ↵Gravatar Joey Hess2012-01-06
| | | | | | | | | | | | | | | repository they were added to and removed from. This needs to run git log on the location log files to get at all past versions of the file, which tends to be a bit slow. It would be possible to make a version optimised for showing the location logs for every key. That would only need to run git log once, so would be faster, but it would need to process an enormous amount of data, so would not speed up the individual file case. In the future it would be nice to support log --format. log --json also doesn't work right yet.
* tweakGravatar Joey Hess2012-01-06
|
* more command-specific optionsGravatar Joey Hess2012-01-06
| | | | | | | | | | | | | | | | | | | | | Made --from and --to command-specific options. Added generic storage for values of command-specific options, which allows removing some of the special case fields in AnnexState. (Also added generic storage for command-specific flags, although there are not yet any.) Note that this storage uses a Map, so repeatedly looking up the same value is slightly more expensive than looking up an AnnexState field. But, the value can be looked up once in the seek stage, transformed as necessary, and passed in a closure to the start stage, and this avoids that overhead. Still, I'm hesitant to use this for things like force or fast flags. It's probably best to reserve it for flags that are only used by a few commands, or options like --from and --to that it's important only be allowed to be used with commands that implement them, to avoid user confusion.
* per-command optionsGravatar Joey Hess2012-01-05
| | | | | | Finally commands can define their own options. Moved --format and --print0 to be options only of find.
* Format strings can be specified using the new --find option, to control what ↵Gravatar Joey Hess2011-12-22
| | | | is output by git annex find.
* Add --include, which is the same as --not --exclude.Gravatar Joey Hess2011-12-22
|
* split out three modules from GitGravatar Joey Hess2011-12-13
| | | | | Constructors and configuration make sense in separate modules. A separate Git.Types is needed to avoid cycles.
* sync: New command that synchronises the local repository and default remote, ↵Gravatar Joey Hess2011-12-09
| | | | by running git commit, pull, and push for you.