summaryrefslogtreecommitdiff
path: root/Assistant
Commit message (Collapse)AuthorAge
* webapp: Allow dashes in ssh key comments when pairing.Gravatar Joey Hess2012-10-22
|
* push out config changesGravatar Joey Hess2012-10-21
|
* !! removalGravatar Joey Hess2012-10-21
|
* add ConfigMonitor threadGravatar Joey Hess2012-10-20
| | | | | | | | | | | | | | | | | | | | Monitors git-annex branch for changes, which are noticed by the Merger thread whenever the branch ref is changed (either due to an incoming push, or a local change), and refreshes cached config values for modified config files. Rate limited to run no more often than once per minute. This is important because frequent git-annex branch changes happen when files are being added, or transferred, etc. A primary use case is that, when preferred content changes are made, and get pushed to remotes, the remotes start honoring those settings. Other use cases include propigating repository description and trust changes to remotes, and learning when a remote has added a new special remote, so the webapp can present the GUI to enable that special remote locally. Also added a uuid.log cache. All other config files already had caches.
* removed 3 partial !! and got a much nicer implementationGravatar Joey Hess2012-10-20
| | | | Yay, monadic Either!
* Merge branch 'safesemaphore'Gravatar Joey Hess2012-10-20
|\ | | | | | | | | | | Conflicts: debian/changelog git-annex.cabal
* | nasty race workaroundGravatar Joey Hess2012-10-19
| |
* | check preferred content when a file is moved or createdGravatar Joey Hess2012-10-19
| | | | | | | | | | | | | | | | | | This can result in the file being dropped, or being downloaded, or even being dropped from some other repo. It's even possible to create a file in a directory where content is not wanted, which will make the assistant immediately send it elsewhere, and then drop it.
* | check and drop after uploadsGravatar Joey Hess2012-10-18
| |
* | check and drop unwanted content from remotes after receiving a transferGravatar Joey Hess2012-10-18
| |
* | splitGravatar Joey Hess2012-10-18
| |
* | drop unwanted content in the transfer scanGravatar Joey Hess2012-10-18
| | | | | | | | | | | | | | | | This was complicated quite a bit by needing to check numcopies. I optimised that, so it only looks up numcopies once per file, no matter how many remotes it checks to drop from. Although it did just occur to me that it might be better to first check if it wants to drop content, and only then check numcopies..
* | minor transfer scanner code reworkingGravatar Joey Hess2012-10-18
| | | | | | | | Also a small optimisation using a Set
* | import S3 only when enabledGravatar Nicolas Pouillard2012-10-18
| |
* | make repo description optionalGravatar Joey Hess2012-10-14
| |
* | reorderGravatar Joey Hess2012-10-14
| | | | | | | | get list of remotes after, rather than before, a potentially blocking action
* | fix display of transfers for remotes not in syncRemotes listGravatar Joey Hess2012-10-14
| |
* | better variable nameGravatar Joey Hess2012-10-14
| |
* | avoid queuing transfers for remotes after syncing to them is pausedGravatar Joey Hess2012-10-14
| | | | | | | | | | | | | | | | | | | | | | | | | | This avoids the expensive transfer scan relying on its list of remotes to scan being accurate throughout, which it will not be when the user pauses syncing to a remote. I feel it's ok to queue transfers to *any* known remote, not just the ones being scanned. Note that there are still small races where after syncing to a remote is paused, a transfer can be queued for it. Not just in the expensive transfer scan, but in the cheap failed transfer scan, and elsewhere.
* | use gitRepoGravatar Joey Hess2012-10-12
| |
* | set/unset annex-sync, rather than annex-ignoreGravatar Joey Hess2012-10-11
| | | | | | | | | | | | This reserves annex.ignore for repos that should not be visible at all; repos with syncing disabled are now skipped by the assistant, but are displayed in the list and can be configured.
* | avoid pairlistener crashGravatar Joey Hess2012-10-10
| | | | | | | | | | | | | | | | | | | | | | I noticed this while offline (so that lack of solar power is good for something). Apparently it tries to bind multicast to lo, and that fails. If this happens, catch it, and retry until a real network interface becomes available. It may be that this should tie into the NetWatcher, and rebind whenever an interface comes up. Needs testing..
* | add "configure" link to each repository in the webapp's repo listGravatar Joey Hess2012-10-09
| |
* | webapp automatic groupingGravatar Joey Hess2012-10-09
| | | | | | | | | | | | | | | | webapp: Adds newly created repositories to one of these groups: clients, drives, servers This is heuristic, but it's a pretty good heuristic, and can always be configured.
* | revert bad changeGravatar Joey Hess2012-10-09
| |
* | assistant: Now honors preferred content settings when deciding what to transfer.Gravatar Joey Hess2012-10-09
| | | | | | | | | | | | | | | | | | Both when queueing downloads, and uploads, consults the preferred content settings. I didn't make it check yet when requeing failed transfers or queuing deferred downloads; dealing with the preferred content settings (or indeed, other settings) changing while the assistant is running still needs work.
| * TransferSlots: Use SafeSemaphore's MSemN instead of QSemN from baseGravatar Ben Gamari2012-10-05
|/ | | | | As described in the documentation, QSemN is unsafe for a variety of reasons.
* fix last zombies in the assistantGravatar Joey Hess2012-10-04
| | | | | Made Git.LsFiles return cleanup actions, and everything waits on processes now, except of course for Seek.
* avoid crashing committer if it fails to stage changesGravatar Joey Hess2012-10-02
| | | | Just retry later.
* always check with ls-files before adding new filesGravatar Joey Hess2012-10-02
| | | | | | | | | | | | | | | | | | | | | | | Makes it safe to use git annex unlock with the watcher/assistant. And also to mix use of the watcher/assistant with regular files stored in git. Long ago, I had avoided doing this check, except during the startup scan, because it would be slow to run ls-files repeatedly. But then I added the lsof check, and to make that fast, got it to detect batch file adds. So let's move the ls-files check to also occur when it'll have a batch, and can check them all with one call. This does slow down adding a single file by just a bit, but really only a little bit. (The lsof check is probably more expensive.) It also speeds up the startup scan, especially when there are lots of new files found by the scan. Also, fixed the sleep for annex.delayadd to not run while the threadstate lock is held, so it doesn't unnecessarily freeze everything else. Also, --force no longer makes it skip the lsof check, which was not documented, and seems never a good idea.
* avoid some warnings when built w/o dbusGravatar Joey Hess2012-09-29
|
* sanitize all git remote namesGravatar Joey Hess2012-09-29
|
* ifdef osx includesGravatar Joey Hess2012-09-28
|
* standalone linux app nearly readyGravatar Joey Hess2012-09-28
| | | | also made several fixes that apply to the OSX app
* close unreproducible bug and remove expensive code added to debug itGravatar Joey Hess2012-09-28
|
* Add OSX standalone app license bundle, and arrange for the About pageGravatar Joey Hess2012-09-27
| | | | to link to it.
* webapp: Avoid crashing when ssh-keygen -F chokes on an invalid known_hosts file.Gravatar Joey Hess2012-09-27
|
* use ~/.ssh/git-annex-shell wrapperGravatar Joey Hess2012-09-26
| | | | | | This was needed for the OSX self-contained app, but is a generally good idea. It avoids needing perl; is probably faster; and could eventually be replaced by something faster yet.
* install a git-annex-shell shim script when the standalone OSX app runsGravatar Joey Hess2012-09-26
| | | | | | | I put it in ~/.ssh/ because there's no reliable way to get it into PATH, and OSX ssh doesn't even honor user's PATH by default. authorized_keys generators will need to check if it's there. Not done yet.
* make the standalone OSX app automatically install itself when runGravatar Joey Hess2012-09-26
|
* allow enabling existing S3 reposGravatar Joey Hess2012-09-26
|
* add a configurator for S3Gravatar Joey Hess2012-09-26
|
* license the webapp under the AGPL 3+Gravatar Joey Hess2012-09-24
| | | | | | | | | | | | | This means that anyone serving up the webapp to users as a service (ie, without providing any git-annex binary at all to the user) still needs to provide a link to the source code for it, including any modifications they may make. This may make git-annex be covered by the AGPL as a whole when it is built with the webapp. If in doubt, you should ask a lawyer. When git-annex is built with the webapp disabled, no AGPLed code is used. Even building in the assistant does not pull in AGPLed code.
* quiet calls to transferkeyGravatar Joey Hess2012-09-24
|
* don't queue uploads for failed downloadsGravatar Joey Hess2012-09-24
|
* default annex.delayadd to 1 on OSXGravatar 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.
* watch for changes to transfer info files, to update progress bars on uploadGravatar Joey Hess2012-09-20
| | | | | | | | | | | | | | This is handled differently for inotify, which can track modifications of existing files, and kqueue, which cannot (TTBOMK). On the inotify side, the TransferWatcher just waits for the file to be updated and reads the new bytesComplete. On the kqueue side, the TransferPoller has to re-read the file every update (currently 0.5 seconds, might need to increase that). I did think about working around kqueue's limitations by somehow creating a new file each time the size changed. But cleaning up all the files that would result seemed difficult. And really, this is not a lot worse than the TransferWatcher's behavior for downloads, which stats a file every 0.5 seconds. As long as the OS has decent file caching behavior..
* upload progress bar for git remote on same filesystemGravatar Joey Hess2012-09-20
| | | | | | | cp is used here, but we can just watch the size of the destination file This commit made from within the ruins of an old mill, overlooking a beautiful waterfall.
* renamed RsyncFile -> RsyncGravatar Joey Hess2012-09-19
|