summaryrefslogtreecommitdiff
path: root/Assistant
Commit message (Collapse)AuthorAge
* Add undo action to nautilus and konqueror integration.Gravatar Joey Hess2014-11-14
|
* remove unused importsGravatar Joey Hess2014-10-28
|
* move remote removal into separate moduleGravatar Joey Hess2014-10-27
| | | | | | This allows using Git.Remote w/o needing to have Git.BuildVersion, which requires configure. It will simplify github-backup when these libraries are used there.
* fix LANGUAGE pragmaGravatar Joey Hess2014-10-09
|
* Support building with yesod 1.4.Gravatar Joey Hess2014-10-09
| | | | | | | | The new yesod needs the ViewPatterns extension. Also, a TH splice in Assistant/Threads/WebApp.hs failed to work without OverLoadedStrings. This commit was sponsored by Brock Spratlen.
* indent with tabs not spacesGravatar Joey Hess2014-10-09
| | | | | | | | | | | Found these with: git grep "^ " $(find -type f -name \*.hs) |grep -v ': where' Unfortunately there is some inline hamlet that cannot use tabs for indentation. Also, Assistant/WebApp/Bootstrap3.hs is a copy of a module and so I'm leaving it as-is.
* fix some mixed space+tab indentationGravatar Joey Hess2014-10-09
| | | | | | | | | This fixes all instances of " \t" in the code base. Most common case seems to be after a "where" line; probably vim copied the two space layout of that line. Done as a background task while listening to episode 2 of the Type Theory podcast.
* assistant: Detect when repository has been deleted or moved, and ↵Gravatar Joey Hess2014-09-15
| | | | automatically shut down the assistant. Closes: #761261
* use types to enforce that removeAnnex can only be called inside lockContentGravatar Joey Hess2014-08-20
| | | | | | | | | | | This fixed one bug where it needed to be and wasn't (in Assistant.Unused). And also found one place where lockContent was used unnecessarily (by drop --from remote). A few other places like uninit probably don't really need to lockContent, but it doesn't hurt to do call it anyway. This commit was sponsored by David Wagner.
* fix build warningGravatar Joey Hess2014-08-08
|
* unify exception handling into Utility.ExceptionGravatar Joey Hess2014-08-07
| | | | | | | | | | | | | | | | | | | | Removed old extensible-exceptions, only needed for very old ghc. Made webdav use Utility.Exception, to work after some changes in DAV's exception handling. Removed Annex.Exception. Mostly this was trivial, but note that tryAnnex is replaced with tryNonAsync and catchAnnex replaced with catchNonAsync. In theory that could be a behavior change, since the former caught all exceptions, and the latter don't catch async exceptions. However, in practice, nothing in the Annex monad uses async exceptions. Grepping for throwTo and killThread only find stuff in the assistant, which does not seem related. Command.Add.undo is changed to accept a SomeException, and things that use it for rollback now catch non-async exceptions, rather than only IOExceptions.
* better exception displayGravatar Joey Hess2014-07-26
|
* use passed program name for kde hooksGravatar Joey Hess2014-07-21
|
* webapp: Automatically install Konqueror integration scripts to get and drop ↵Gravatar Joey Hess2014-07-21
| | | | | | | | | | files. Based on the example from the tip, but modified to cd into the repo before running git-annex, since konqueror does not. Also, at least on my system, the directory is ~/.kde, not ~/.kde4. (konqueror 4.12.4) This commit was sponsored by Jürgen Peters.
* Install nautilus hooks even when ~/.local/share/nautilus/ does not yet ↵Gravatar Joey Hess2014-07-16
| | | | exist, since it is not automatically created for Gnome 3 users.
* Really fix bug that caused the assistant to make many unncessary empty merge ↵Gravatar Joey Hess2014-07-09
| | | | commits.
* assistant: Fix bug, introduced in last release, that caused the assistant to ↵Gravatar Joey Hess2014-07-05
| | | | make many unncessary empty merge commits.
* remove unused importGravatar Joey Hess2014-07-04
|
* reorgGravatar Joey Hess2014-07-04
| | | | | | avoid Git.Command needing Utility.Batch which needs async For github-backup etc
* support commit.gpgsignGravatar Joey Hess2014-07-04
| | | | | | | | | | | | | | | | | | | | | Support users who have set commit.gpgsign, by disabling gpg signatures for git-annex branch commits and commits made by the assistant. The thinking here is that a user sets commit.gpgsign intending the commits that they manually initiate to be gpg signed. But not commits made in the background, whether by a deamon or implicitly to the git-annex branch. gpg signing those would be at best a waste of CPU and at worst would fail, or flood the user with gpg passphrase prompts, or put their signature on changes they did not directly do. See Debian bug #753720. Also makes all commits done by git-annex go through a few central control points, to make such changes easier in future. Also disables commit.gpgsign in the test suite. This commit was sponsored by Antoine Boegli.
* Windows: Assistant now logs to daemon.log.Gravatar Joey Hess2014-06-17
| | | | | | | Yes, this means that git annex webapp on windows execs git-annex, which execs itself to set env, and the execs itself again to redirect logs. This is disgusting. This is Windows(TM).
* assistant: Fix one-way assistant->assistant sync in direct mode.Gravatar Joey Hess2014-06-16
| | | | | | | | | | | | | | When in direct mode, update the master branch after committing to the annex/direct/master branch. Also, update the synced/master branch. This fixes a topology A->B where both A and B are in direct mode and running the assistant, and a change is made to B. Before this fix, A pulled the changes from B, but since they were only on the annex/direct/master branch, it did not merge them. Note that I considered making the assistant merge the remotes/B/annex/direct/master, but decided to keep it simple and only merge the sync branches as before.
* fix for Windows file timestamp timezone madnessGravatar Joey Hess2014-06-12
| | | | | | | | | | | | | | | | | | | | | | On Windows, changing the time zone causes the apparent mtime of files to change. This confuses git-annex, which natually thinks this means the files have actually been modified (since THAT'S WHAT A MTIME IS FOR, BILL <sheesh>). Work around this stupidity, by using the inode sentinal file to detect if the timezone has changed, and calculate a TSDelta, which will be applied when generating InodeCaches. This should add no overhead at all on unix. Indeed, I sped up a few things slightly in the refactoring. Seems to basically work! But it has a big known problem: If the timezone changes while the assistant (or a long-running command) runs, it won't notice, since it only checks the inode cache once, and so will use the old delta for all new inode caches it generates for new files it's added. Which will result in them seeming changed the next time it runs. This commit was sponsored by Vincent Demeester.
* Fix build with wai 0.3.0.Gravatar Joey Hess2014-06-11
| | | | | | | | | | This version of wai changed the type of Middleware, so I cannot seem to liftIO inside it. So, got rid of a lot of not really needed complexity to use System.Log.Logger's logging stuff, and just use the standard wai stdout logger when debug logging is enabled. Format may change some, and it logs http to stdout instead of stderr now. Doesn't matter for the webapp since both go to the same log anyway.
* export CreateProcess fields from Utility.ProcessGravatar Joey Hess2014-06-10
| | | | update code to avoid cwd and env redefinition warnings
* webapp: Include ssh port in mangled hostname.Gravatar Joey Hess2014-06-05
| | | | | | | | | This avoids a collision if different ssh ports are used on the same host for some reason. Note that it's ok to change the format of the mangled hostname; unmangling only extracts the hostname from it, and once ssh is configured for a mangled hostname, that config is not changed.
* assistant: Make sanity checker tmp dir cleanup code more robust.Gravatar Joey Hess2014-05-30
|
* fix UI when enabling existing gcrypt repoGravatar Joey Hess2014-05-30
| | | | | | | | avoid editing repo for same reasons as in 52601eb6067037e197b5c0b56c257482d968b465 avoid stomping on its description, even though no description exists until after syncing is complete
* avoid stomping on existing description when enabling a special remoteGravatar Joey Hess2014-05-30
| | | | Happened with eg, gcrypt remotes.
* get rid of (completely safe) uses of Char8Gravatar Joey Hess2014-05-27
| | | | | Char8 often indicates an encoding bug. It didn't here, but I can avoid it and not worry about it.
* assistant: When there are multiple remotes giving different ways to access ↵Gravatar Joey Hess2014-05-19
| | | | | | | | | | | | the same repository, honor remote cost settings and use the cheapest available. Note that TransferInfo does not always contain the Remote, although any transfer added to the TransferQueue does have a Remote in its TransferInfo. The transferkeys command still accepts a UUID, which is useful to handle upgrades, where an old assistant version runs the new transferkeys. This commit was sponsored by Kalle Svensson.
* add CredPair cacheGravatar Joey Hess2014-04-29
| | | | | | | Note that this does not yet use SecureMem. It would probably make sense for the Password part of a CredPair to use SecureMem, and making that change is better than passing in a String and having it converted to SecureMem in this code.
* assistant: Clean up stale tmp files on startup.Gravatar Joey Hess2014-04-27
| | | | This commit was sponsored by Melissa Binde.
* avoid build warning from new dbusGravatar Joey Hess2014-04-26
|
* avoid build warning from new dbusGravatar Joey Hess2014-04-26
|
* Standalone builds now check gpg signatures before upgrading.Gravatar Joey Hess2014-04-23
|
* webapp: Support using git-annex on a remote server, which was installed from ↵Gravatar Joey Hess2014-04-20
| | | | | | | | | | the standalone tarball or OSX app, and so does not have git-annex in PATH (and may also not have git or rsync in PATH). * webapp: Support using git-annex on a remote server, which was installed from the standalone tarball or OSX app, and so does not have git-annex in PATH (and may also not have git or rsync in PATH). * standalone tarball, OSX app: Install a ~/.ssh/git-annex-wrapper, which can be used to run git-annex, git, rsync, etc.
* send remote-daemon a RELOAD after making a ssh remoteGravatar Joey Hess2014-04-20
| | | | | This doesn't work yet, because RELOAD is buggy and does not notice the new remote.
* replace (Key, Backend) with KeyGravatar Joey 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.
* reinit: New command that can initialize a new reposotory using the ↵Gravatar Joey Hess2014-04-15
| | | | configuration of a previously known repository. Useful if a repository got deleted and you want to clone it back the way it was.
* detect wicd network disconnection eventsGravatar Joey Hess2014-04-12
|
* NetWatcher: detect when networkmanager has lost network connectionGravatar Joey Hess2014-04-12
| | | | | | | | | This is a better approach to finding both when NM has lost a network connection, and when a new network connection is made by NM. Tested with network-manager 0.9.8.8. This commit was sponsored by Cedric Staub.
* remotedaemon: When network connection is lost, close all cached ssh connections.Gravatar Joey Hess2014-04-12
| | | | This commit was sponsored by Cedric Staub.
* webapp: Rework xmpp nudge to prompt for either xmpp or a ssh remote be set up.Gravatar Joey Hess2014-04-09
| | | | This commit was sponsored by Nathan Howell.
* also show signal icon next to connected xmpp remotesGravatar Joey Hess2014-04-09
|
* webapp: Show a network signal icon next to ssh remotes that it's currently ↵Gravatar Joey Hess2014-04-09
| | | | connected with.
* make git-remote-daemon ssh transport robustGravatar Joey Hess2014-04-09
| | | | | | | | | | | | | | | | | | | * Remote system might be available, and connection get lost. Should reconnect, but needs to avoid bad behavior (ie, constant reconnect attempts.) Use exponential backoff. * Detect if old system had a too old git-annex-shell, and show the user a nice message in the webapp. Required parsing error messages, so perhaps this code shoudl be removed once enough time has passed.. * Switch the protocol to using remote URI's, rather than remote names. Names change. Also avoids issues with serialization of names containing whitespace. This is nearly ready for merge into master now. I'd still like to make the ssh transport smarter about reusing ssh connection caching during git pull. This commit was sponsored by Jim Paris.
* assistant: Now detects immediately when other repositories push changes toGravatar Joey Hess2014-04-08
| | | | | | | | | | | | a ssh remote, and pulls. XMPP is no longer needed in this configuration! Requires the remote server have git-annex-shell with notifychanges support. (untested) This commit was sponsored by Geog Wechslberger.
* Fix nautilus script installation to not crash when the nautilus script dir ↵Gravatar Joey Hess2014-04-05
| | | | | | | does not exist. Instead, only install scripts when the directory already exists. nautilus creates this directory each time run, so this avoids putting cruft in user's home
* assistant: Adjust ssh authorized keys line generated in local pairing or for ↵Gravatar Joey Hess2014-04-02
| | | | a remote ssh server to set environment variables in an alternative way that works with the non-POSIX fix shell, as well as POSIX shells.