summaryrefslogtreecommitdiff
path: root/Command
Commit message (Collapse)AuthorAge
* hooked up git-annex-shell transferinfoGravatar Joey Hess2012-09-21
| | | | Finally done with progressbars!
* git-annex-shell transferinfo commandGravatar Joey Hess2012-09-21
| | | | | TODO: Use this when running sendkey, to feed back transfer info from the client side rsync.
* unify typesGravatar Joey Hess2012-09-21
|
* fix breakage caught by test suiteGravatar Joey Hess2012-09-21
| | | | | Can't use show-ref --tags --branches, as that omits remote branches. Instead, filter out the synced refs directly.
* typoGravatar Joey Hess2012-09-19
|
* recvkey is not an upload, so ignore the progress callbackGravatar Joey Hess2012-09-19
|
* add a progress callback to storeKey, and threaded it all the way throughGravatar Joey Hess2012-09-19
| | | | | | | | Transfer info files are updated when the callback is called, updating the number of bytes transferred. Left unused p variables at every place the callback should be used. Which is rather a lot..
* renamed RsyncFile -> RsyncGravatar Joey Hess2012-09-19
|
* better name for fallback sync refsGravatar Joey Hess2012-09-16
| | | | | | | | | | | Don't expose these as branches in refs/heads/. Instead hide them away in refs/synced/ where only show-ref will find them. Make unused only look at branches and tags, not these other things, so it won't care if some stale sync ref used to use a file. This means they don't need to be deleted, which could have led to an incoming sync being missed.
* sync: Pushes the git-annex branch to remote/synced/git-annex, rather than ↵Gravatar Joey Hess2012-09-16
| | | | | | | | | | | | | directly to remote/git-annex. This fixes a problem I was seeing in the assistant where two remotes would attempt to sync with one another at the same time, and both failed pushing the diverged git-annex branch. Then when both tried to resolve the failed push, they each modified their git-annex branch, which again each blocked the other from pushing into it. The result was that the git-annex branches were perpetually diverged (despite having the same content!) and once the assistant fell into this trap, it couldn't get out and always had to do the slow push/fail/pull/merge/push/fail cycle.
* reinject: When the provided file doesn't match, leave it where it is, rather ↵Gravatar Joey Hess2012-09-16
| | | | than moving to .git/annex/bad/
* more descriptive name for oneshotGravatar Joey Hess2012-09-15
|
* migrate: Check content before generating the new key, to avoid generating a ↵Gravatar Joey Hess2012-09-14
| | | | key for corrupt data.
* add decodeW8Gravatar Joey Hess2012-09-13
|
* hlintGravatar Joey Hess2012-09-13
|
* first pass at alert buttonsGravatar Joey Hess2012-09-08
| | | | | | | | | They work fine. But I had to go to a lot of trouble to get Yesod to render routes in a pure function. It may instead make more sense to have each alert have an assocated IO action, and a single route that runs the IO action of a given alert id. I just wish I'd realized that before the past several hours of struggling with something Yesod really doesn't want to allow.
* display errors when any named thread crashesGravatar Joey Hess2012-09-06
|
* use the ~/.config/git-annex/program file to find command when running transfersGravatar Joey Hess2012-08-27
|
* refactorGravatar Joey Hess2012-08-26
|
* refactorGravatar Joey Hess2012-08-26
|
* 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.
* keep logs of failed transfers, and requeue them when doing a non-full scanGravatar Joey Hess2012-08-23
| | | | of a remote
* avoid unnecessary transfer scans when syncing a disconnected remoteGravatar Joey Hess2012-08-22
| | | | | | | | | | | | | | | | | | | | Found a very cheap way to determine when a disconnected remote has diverged, and has new content that needs to be transferred: Piggyback on the git-annex branch update, which already checks for divergence. However, this does not check if new content has appeared locally while disconnected, that should be transferred to the remote. Also, this does not handle cases where the two git repos are in sync, but their content syncing has not caught up yet. This code could have its efficiency improved: * When multiple remotes are synced, if any one has diverged, they're all queued for transfer scans. * The transfer scanner could be told whether the remote has new content, the local repo has new content, or both, and could optimise its scan accordingly.
* implement resuming of paused transfersGravatar Joey Hess2012-08-12
| | | | | Currently waits for a new transfer slot to open up, which probably needs to change..
* add routes to pause/start/cancel transfersGravatar Joey Hess2012-08-08
| | | | | | | | | | | | | | | | This commit includes a paydown on technical debt incurred two years ago, when I didn't know that it was bad to make custom Read and Show instances for types. As the routes need Read and Show for Transfer, which includes a Key, and deriving my own Read instance of key was not practical, I had to finally clean that up. So the compact Key read and show functions are now file2key and key2file, and Read and Show are now derived instances. Changed all code that used the old instances, compiler checked. (There were a few places, particularly in Command.Unused, and the test suite where the Show instance continue to be used for legitimate comparisons; ie show key_x == show key_y (though really in a bloom filter))
* make the webapp honor the web.browser git configGravatar Joey Hess2012-08-08
|
* Merge branch 'master' into assistantGravatar Joey Hess2012-08-07
|\
| * fix transfer log cleanup crashGravatar Joey Hess2012-08-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Avoid crashing when "git annex get" fails to download from one location, and falls back to downloading from a second location. The problem is that git annex get calls download recursively from within itself if the first download attempt fails. So the first time through, it writes a transfer info file, which is then overwritten on the second, recursive call. Then on cleanup, it tries to delete the file twice, which of course doesn't work. Fixed both by not crashing if the transfer file is removed, and by changing Get to not run download recursively like that. It's the only thing that did so, and it just seems like a bad idea.
* | handle case of adding populated drive to just created repoGravatar Joey Hess2012-08-05
| | | | | | | | | | The just created repo has no master branch commits yet. This is now handled, merging in the master branch from the populated drive.
* | fix crashes when run in a git repo that has been initted but has no master ↵Gravatar Joey Hess2012-08-05
| | | | | | | | branch yet
* | Merge remote-tracking branch 'origin/master' into assistantGravatar Joey Hess2012-08-05
|\| | | | | | | | | Conflicts: Init.hs
| * unused, status: Avoid crashing when ran in bare repo.Gravatar Joey Hess2012-08-05
| |
* | wire up scan and transfer to newly added removable driveGravatar Joey Hess2012-08-04
| | | | | | | | remote setup still todo
* | full autostart supportGravatar Joey Hess2012-08-02
| | | | | | | | | | | | | | | | git annex assistant --autostart will start separate daemons in each listed autostart repo running the webapp outside any git-annex repo will open it on the first listed autostart repo
* | webapp is no longer a daemonGravatar Joey Hess2012-08-01
| | | | | | | | Remove --foreground and --stop options from it.
* | always run webapp in foregroundGravatar Joey Hess2012-08-01
| |
* | write pid file even when running in foregroundGravatar Joey Hess2012-08-01
| | | | | | | | | | | | | | | | This prevents multiple runs of the assistant in the foreground, and lets --stop stop foregrounded runs too. The webapp firstrun case also now writes a pid file, once it's made the git repo to put it in.
* | implemented firstrun repository creation and redirection to full webappGravatar Joey Hess2012-08-01
| | | | | | | | Some of the trickiest code I've possibly ever written.
* | when run in uninitialized git repo, do firstrunGravatar Joey Hess2012-07-31
| | | | | | | | My $HOME is in git, let's make it work :)
* | don't start webapp when in a git repo that has not been git-annex inittedGravatar Joey Hess2012-07-31
| | | | | | | | | | Maybe later it can prompt if they want to use the repo with git-annex, but for now this is a sane easy choice.
* | webapp now starts up when run not in a git repoGravatar Joey Hess2012-07-31
| |
* | Merge branch 'master' into assistantGravatar Joey Hess2012-07-27
|\|
| * initremote: Avoid recording remote's description before checking that its ↵Gravatar Joey Hess2012-07-27
| | | | | | | | config is valid.
* | now the webapp has the same options as the assistantGravatar Joey Hess2012-07-27
| |
* | much better webapp startup of the assistantGravatar Joey Hess2012-07-27
| | | | | | | | | | | | This avoids forking another process, avoids polling, fixes a race, and avoids a rare forkProcess thread hang that I saw once time when starting the webapp.
* | increase timeout from 10 to 100 secondsGravatar Joey Hess2012-07-26
| | | | | | | | I've seen 10 be too short under load.
* | when starting the assistant, wait for it to create the shim file, as well as ↵Gravatar Joey Hess2012-07-26
| | | | | | | | | | | | the pid file fixes a possible race
* | webapp: check that the shim exists, and restart the assistant if notGravatar Joey Hess2012-07-26
| |
* | on second thought, let's use --restart rather than --forceGravatar Joey Hess2012-07-26
| | | | | | | | --force could enable other, unwanted behavior
* | git annex webapp --force forces a restart of the daemonGravatar Joey Hess2012-07-26
| | | | | | | | Useful for testing..