summaryrefslogtreecommitdiff
path: root/Assistant
Commit message (Collapse)AuthorAge
* avoid auto-accepting pair requests from friends already paired withGravatar Joey Hess2013-04-30
| | | | | | | Unless the request is for repo uuid we already know. This way, if A1 pairs with friend B1, and B1 pairs with device B2, then B1 can request A1 pair with it and no confirmation is needed. (In future, may want to try to do that automatically, to make a more robust network.)
* assistant: Fix bug that could cause incoming pushes to not get merged into ↵Gravatar Joey Hess2013-04-30
| | | | | | | | | | the local tree. Observed that the pushed refs were received, but not merged into master. The merger never saw an add event for these refs. Either git is not writing to a new file and renaming it into place, or the inotify code didn't notice that. Changed it to also watch for modify events and that seems to have fixed it!
* more xmpp debuggingGravatar Joey Hess2013-04-30
|
* add uuid to all xmpp messagesGravatar Joey Hess2013-04-30
| | | | | | | | | | | | | | | | | | (Except for the actual streaming of receive-pack through XMPP, which can only run once we've gotten an appropriate uuid in a push initiation message.) Pushes are now only initiated when the initiation message comes from a known uuid. This allows multiple distinct repositories to use the same xmpp address. Note: This probably breaks initial push after xmpp pairing, because at that point we may not know about the paired uuid, and so reject the push from it. It won't break in simple cases, because the annex-uuid of the remote is checked. However, when there are multiple clients behind a single xmpp address, only uuid of the first is recorded in annex-uuid, and so any pushes from the others will be rejected (unless the first remote pushes their uuids to us beforehand.
* webapp: Now automatically fills in any creds used by an existing remote when ↵Gravatar Joey Hess2013-04-27
| | | | creating a new remote of the same type. Done for Internet Archive, S3, Glacier, and Box.com remotes.
* 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.
* Internet Archive!Gravatar Joey Hess2013-04-25
| | | | | | | * Add public repository group. * webapp: Can now set up Internet Archive repositories. TODO: Enabling IA repositories.
* use DList for the transfer queueGravatar Joey Hess2013-04-25
| | | | | Some nice efficiency gains here for list appending, although mostly the small size of the transfer queue makes them irrelivant.
* use a DList for the deferred downloads queueGravatar Joey Hess2013-04-25
|
* committer tweak to wait for Watcher to resume after a max-size commitGravatar Joey Hess2013-04-25
| | | | | | Without this, a very large batch add has commits of sizes approx 5000, 2500, 1250, etc down to 10, and then starts over at 5000. This fixes it so it's 5000+ every time.
* optimise direct mode startup scanGravatar Joey Hess2013-04-24
| | | | | A recent change made existing symlinks be re-staged. That does not need to be done during the startup scan though.
* assistant: Sanitize XMPP presence information logged for debugging.Gravatar Joey Hess2013-04-24
|
* get rid of need to run pre-commit hook when assistant commits in direct modeGravatar Joey Hess2013-04-24
| | | | | | | | | | | That hook updates associated file bookkeeping info for direct mode. But, everything already called addAssociatedFile when adding/changing a file. It only needed to also call removeAssociatedFile when deleting a file, or a directory. This should make bulk adds faster, by some possibly significant amount. Bulk removals may be a little slower, since it has to use catKeyFile now on each removed file, but will still be faster than adds.
* fix 5244ab7656e2269676cf6296718c8e5243c5b919Gravatar Joey Hess2013-04-24
| | | | Converted back to the wrong type, oops.
* refactoring and minor performance tweakGravatar Joey Hess2013-04-24
|
* remove last use of TSetGravatar Joey Hess2013-04-24
|
* batch commit every 5 thousand changes, not 10 thousandGravatar Joey Hess2013-04-24
| | | | | | | | | | | There's a tradeoff between making less frequent commits, and needing to use memory to store all the changes that are coming in. At 10 thousand, it needs 150 mb of memory. 5 thousand drops that down to 90 mb or so. This also turns out to have significant imact on total run time. I benchmarked 10k changes taking 27 minutes. But two 5k batches took only 21 minutes.
* convert PendingAddChange back to Change when an add failsGravatar Joey Hess2013-04-24
| | | | | | | If an add failed, we should lose the KeySource, since it, presumably, differs due to a change that was made to the file. (The locked down file is already deleted.)
* use TList for ChangePoolGravatar Joey Hess2013-04-24
|
* show one alert when bulk adding filesGravatar Joey Hess2013-04-24
| | | | | | | | | | | | Turns out that a lot of the time spent in a bulk add was just updating the add alert to rotate through each file that was added. Showing one alert makes for a significant speedup. Also, when the webapp is open, this makes it take quite a lot less cpu during bulk adds. Also, it lets the user know when a bulk add happened, which is sorta nice..
* only show latest warning, rather than combining warning alertsGravatar Joey Hess2013-04-24
| | | | | | | In the case of the inotify limit warning, particularly, if it happens once it will be happening repeatedly, and so combining alerts resulted in a much too large alert message that took up a lot of memory and was too large for the webapp to display.
* assistant: when an add fails, requeue it for laterGravatar Joey Hess2013-04-23
| | | | See analysis in bug report for one way this could happen.
* more efficient data type for ChangeChanGravatar Joey Hess2013-04-23
| | | | | | | | | | Making this a tset of lists of Changes, rather than a tset of Changes makes refilling it, in batch mode, much more efficient. Rather than needing to add every Change it's collected one at a time, it can add them in one fast batch operation. It would be more efficient yet to use a Set, but that would need an Eq instance for InodeCache.
* rename moduleGravatar Joey Hess2013-04-23
|
* expose Control.Monad.joinGravatar Joey Hess2013-04-22
| | | | | I think I've been looking for that function for some time. Ie, I remember wanting to collapse Just Nothing to Nothing.
* assistant: When built with git before 1.8.0, use `git remote rm` to delete a ↵Gravatar Joey Hess2013-04-22
| | | | remote. Newer git uses `git remote remove`.
* Detect systems that have no user name set in GECOS, and also don't have ↵Gravatar Joey Hess2013-04-22
| | | | user.name set in git config, and put in a workaround so that commits to the git-annex branch (and the assistant) will still succeed despite git not liking the system configuration.
* sync, assistant: Sync with remotes that have annex-ignore setGravatar Joey Hess2013-04-22
| | | | | | | | This is so git remotes on servers without git-annex installed can be used to keep clients' git repos in sync. This is a behavior change, but since annex-sync can be set to disable syncing with a remote, I think it's acceptable.
* fix osx buildGravatar Joey Hess2013-04-22
|
* forgot to commit this new fileGravatar Joey Hess2013-04-20
|
* fix menu file installation directoryGravatar Joey Hess2013-04-20
|
* fix warningGravatar Joey Hess2013-04-20
|
* Install FDO desktop menu file when webapp is started in standalone mode.Gravatar Joey Hess2013-04-20
|
* assistant: Work around misfeature in git 1.8.2 that makes `git commit ↵Gravatar Joey Hess2013-04-18
| | | | | | --alow-empty -m ""` run an editor. See http://git-annex.branchable.com/bugs/assistant_hangs_during_commit/
* refactor static route definition -- android webapp build fixGravatar Joey Hess2013-04-17
| | | | | | Incidentially should work around the last problem that prevented the webapp building on Android. (Except for a few places I need to clean up after hand-fixing the spliced TH code.)
* webapp: Include the repository directory in the mangled hostname and ssh key ↵Gravatar Joey Hess2013-04-16
| | | | name, so that a locked down ssh key for one repository is not re-used when setting up additional repositories on the same server.
* use git-annex for ssh directory nameGravatar Joey Hess2013-04-14
|
* random ssh keys (╯°□°)╯︵ ┻━┻ gnome-keyringGravatar Joey Hess2013-04-14
| | | | | | | | | | | | | | assistant: Work around horrible, terrible, very bad behavior of gnome-keyring, by not storing special-purpose ssh keys in ~/.ssh/*.pub. Apparently gnome-keyring apparently will load and indiscriminately use such keys in some cases, even if they are not using any of the standard ssh key names. Instead store the keys in ~/.ssh/annex/, which gnome-keyring will not check. Note that neither I nor #debian-devel were able to quite reproduce this problem, but I believe it exists, and that this fixes it. And it certianly won't hurt anything..
* turn on PackageImports globallyGravatar Joey Hess2013-04-13
| | | | | | | This will make it easier to use the Evil Splicer, when it needs to add package qualified imports And there's no real downside.
* avoid warningGravatar Joey Hess2013-04-13
|
* remove debugGravatar Joey Hess2013-04-11
|
* addurl: Register transfer so the webapp can see it.Gravatar Joey Hess2013-04-11
| | | | | | * addurl: Register transfer so the webapp can see it. * addurl: Automatically retry downloads that fail, as long as some additional content was downloaded.
* assistant: Bug fix to avoid annexing the files that git uses to stand in for ↵Gravatar Joey Hess2013-04-10
| | | | | | symlinks on FAT and other filesystem not supporting symlinks. also, blog for the day..
* assistant: Added sequence numbers to XMPP git push packets. (Not yet used.)Gravatar Joey Hess2013-04-10
| | | | | | | For backwards compatability, "" is treated as "0" sequence number. --debug will show xmpp sequence numbers now, but they are not otherwise used.
* display alert in webapp when assistant shuts downGravatar Joey Hess2013-04-10
| | | | and remove any activity alerts
* animate syncing and other activity iconsGravatar Joey Hess2013-04-08
|
* syncNewRemote is not only used for new remotes; rename to syncRemoteGravatar Joey Hess2013-04-08
|
* webapp: New --listen= option allows running the webapp on one computer and ↵Gravatar Joey Hess2013-04-08
| | | | | | | connecting to it from another. Does not yet use HTTPS. I'd need to generate a certificate, and I'm not sure what's the best way to do that.
* Generate ciphers with a better entropy.Gravatar guilhem2013-04-06
| | | | | | | | | | Unless highRandomQuality=false (or --fast) is set, use Libgcypt's 'GCRY_VERY_STRONG_RANDOM' level by default for cipher generation, like it's done for OpenPGP key generation. On the assistant side, the random quality is left to the old (lower) level, in order not to scare the user with an enless page load due to the blocking PRNG waiting for IO actions.
* Bugfix: Direct mode no longer repeatedly checksums duplicated files.Gravatar Joey Hess2013-04-06
| | | | | | | | | | | | | | | | | Fixed by storing a list of cached inodes for a key, instead of just one. Backwards compatability note: An old git-annex version will fail to parse an inode cache file that has been written by a new version, and has multiple items. It will succees if just one. So old git-annexes will have even worse behavior when there are duplicated files, if that is possible. I don't think it will be a problem. (Famous last words.) Also, note that it doesn't expire old and unused inode caches for a key. It would be possible to add this if needed; just look through the associated files for a key and if there are more cached inodes, throw out any not corresponding to associated files. Unless a file is being copied repeatedly and the old copy deleted, this lack of expiry should not be a problem.