Commit graph

1050 commits

Author SHA1 Message Date
Joey Hess
958312885f webapp: Improve UI around remote that have no annex.uuid set, either because setup of them is incomplete, or because the remote git repository is not a git-annex repository.
Complicated by such repositories potentially being repos that should have
an annex.uuid, but it failed to be gotten, perhaps due to the past ssh repo
setup bugs. This is handled now by an Upgrade Repository button.
2013-11-07 18:02:00 -04:00
Joey Hess
b7c15f3b60 webapp: Avoid encoding problems when displaying the daemon log file. 2013-11-07 15:29:20 -04:00
Joey Hess
4510819215 v5 for direct mode, with automatic upgrade
This includes storing the current state of the HEAD ref, which git annex
sync is going to need, but does not make sync use it.
2013-11-05 17:05:03 -04:00
Joey Hess
dfe3162bf5 fix editing unknown uuid
Before, assumed Nothing when getting remote meant it was the local repo,
and showed the edit form for that.
2013-11-05 12:38:54 -04:00
Joey Hess
6ab731f4b0 fix warning when building w/o CLIBS 2013-11-03 12:00:08 -04:00
Joey Hess
1f39aef893 Fix zombie process that occurred when switching between repository views in the webapp. 2013-11-02 22:25:08 -04:00
Joey Hess
7e7e765cba Improve local pairing behavior when two computers both try to start the pairing process separately.
I was able to reproduce something very like this bug by starting
pairing separately on both computers under poor network conditions (ie,
weak wifi on my front porch). Neither computer showed an alert for the
PairReq messages it was seeing (intermittently) from the other.

So, I've made a new PairReq message that has not been seen before
always make the alert pop up, even if the assistant thinks it is
in the middle of its own pairing process (or even another pairing
process with a different box on the LAN).

(This shouldn't cause a rogue PairAck to disrupt a pairing process part
way through.)
2013-11-02 15:10:29 -04:00
Joey Hess
b5ddb4f0e6 better control character sanity check
The msg contains a haskell-escaped string, so control characters in it can
also be escaped. So this didn't work before, really.

Got rid of the \n check, because current pairing messages actually do
contain a \n, after the ssh public key. Don't want to break
back-compatability.
2013-11-02 14:44:10 -04:00
Joey Hess
2eca7eb565 fix build w/o webapp (again) 2013-11-02 13:38:44 -04:00
Joey Hess
8820091b4c webapp: remind user when using repositories that lack consistency checks
When starting up the assistant, it'll remind about the current
repository, if it doesn't have checks. And when a removable drive
is plugged in, it will remind if a repository on it lacks checks.

Since that might be annoying, the reminders can be turned off.

This commit was sponsored by Nedialko Andreev.
2013-10-29 16:50:38 -04:00
Joey Hess
496c8b7abb add post-repair actions 2013-10-29 14:25:20 -04:00
Joey Hess
791c8535b5 fix stale git locks as part of repo repair 2013-10-29 13:52:19 -04:00
Joey Hess
fabb0c50b7 move code around and rename thread; no functional changes 2013-10-29 13:41:44 -04:00
Joey Hess
26d95e86d7 rename module 2013-10-28 11:33:14 -04:00
Joey Hess
c0eec83ee5 fix build w/o webapp 2013-10-28 11:24:25 -04:00
Joey Hess
a7821c0581 automatically launch git repository repair
Added a RemoteChecker thread, that waits for problems to be reported with
remotes, and checks if their git repository is in need of repair.

Currently, only failures to sync with the remote cause a problem to be
reported. This seems enough, but we'll see.

Plugging in a removable drive with a repository on it that is corrupted
does automatically repair the repository, as long as the corruption causes
git push or git pull to fail. Some types of corruption do not, eg
missing/corrupt objects for blobs that git push doesn't need to look at.

So, this is not really a replacement for scheduled git repository fscking.
But it does make the assistant more robust.

This commit is sponsored by Fernando Jimenez.
2013-10-27 16:42:13 -04:00
Joey Hess
7ed8e87a34 assistant: Support repairing git remotes that are locally accessible
(eg, on removable drives)

gcrypt remotes are not yet handled.

This commit was sponsored by Sören Brunk.
2013-10-27 15:38:59 -04:00
Joey Hess
b48aaa22d0 assistant: Automatically repair damanged git repository, if it can be done without losing data. 2013-10-26 17:16:29 -04:00
Joey Hess
a1b1b5ef52 moved code out of webapp
No code changes, aside from some changes to lifting in code that turned out
to be able to run in Assistant rather than Handler.
2013-10-26 16:58:16 -04:00
Joey Hess
cb440ab423 ssh 2013-10-26 14:07:36 -04:00
Joey Hess
0dfe604ddc webapp: When setting up a bare shared repository, enable non-fast-forward pushes. 2013-10-26 13:06:43 -04:00
Joey Hess
2233ddd5a2 assistant: When autostarted, wait 5 seconds before running the startup scan, to avoid contending with the user's desktop login process. 2013-10-26 12:42:58 -04:00
Joey Hess
338bb7d3b8 fix build fail with old yesod (or something)
Avoid MonadIO constraint by using liftAnnex to get to liftIO.
2013-10-24 12:59:20 -04:00
Joey Hess
0036139b33 wire git repair into webapp 2013-10-23 14:43:58 -04:00
Joey Hess
1eaec2f9aa UI tweaks 2013-10-22 16:30:23 -04:00
Joey Hess
d345e5b52f add git fsck to cronner, and UI for repository repair (not yet wired up) 2013-10-22 16:02:52 -04:00
Joey Hess
00932eda06 webapp: Fix bug when adding a remote and git-remote-gcrypt is not installed. 2013-10-22 13:32:10 -04:00
Joey Hess
b7800eab24 webapp: Move sidebar to the right hand side of the screen. 2013-10-21 18:05:52 -04:00
Joey Hess
4f871f89ba git-recover-repository 1/2 done 2013-10-20 17:50:51 -04:00
Joey Hess
4722dcc92b cleanup 2013-10-18 11:24:41 -04:00
Joey Hess
7a9daefea2 update for LsTree type change
in the config monitor, we want files relative to the top of the working directory
2013-10-17 14:51:39 -04:00
Joey Hess
e5e4b80b09 add support for weekly, monthly, and yearly schedules that run on no specific day 2013-10-15 13:27:21 -04:00
Joey Hess
4a374fa999 commit config changes immediately 2013-10-14 16:24:13 -04:00
Joey Hess
3989ad91e6 display of last fsck time 2013-10-14 16:05:10 -04:00
Joey Hess
5e891672e5 only sync with local repos that are currently available (and only fsck them too) 2013-10-14 15:36:47 -04:00
Joey Hess
4bb8720d85 switch to runFormPostNoToken to work around strange yesod bug 2013-10-14 12:18:04 -04:00
Joey Hess
25462f125d cronner: run jobs triggered by remotes becoming connected (untested) 2013-10-13 17:14:56 -04:00
Joey Hess
a1040a38c5 Merge branch 'master' into incrementalfsck 2013-10-13 15:05:44 -04:00
Joey Hess
ee2020bdc7 fix build w/o webdav 2013-10-13 14:19:58 -04:00
Joey Hess
42c4a86d16 UI for configuring fscks of remotes 2013-10-11 17:25:32 -04:00
Joey Hess
1ffb3bb0ba add remote fsck interface
Currently only implemented for local git remotes. May try to add support
to git-annex-shell for ssh remotes later. Could concevably also be
supported by some special remote, although that seems unlikely.

Cronner user this when available, and when not falls back to
fsck --fast --from remote

git annex fsck --from does not itself use this interface.
To do so, I would need to pass --fast and all other options that influence
fsck on to the git annex fsck that it runs inside the remote. And that
seems like a lot of work for a result that would be no better than
cd remote; git annex fsck
This may need to be revisited if git-annex-shell gets support, since it
may be the case that the user cannot ssh to the server to run git-annex
fsck there, but can run git-annex-shell there.

This commit was sponsored by Damien Diederen.
2013-10-11 16:03:18 -04:00
Joey Hess
88ec6eff15 add/remove/edit schedule UI working
Once I built the basic widget, it turned out to be rather easy to replicate
it once per scheduled activity and wire it all up to a fully working UI.

This does abuse yesod's form handling a bit, but I think it's ok.
And it would be nice to have it all ajax-y, so that saving one modified
form won't lose any modifications to other forms. But for now, a nice
simple 115 line of code implementation is a win.

This late night hack session commit was sponsored by Andrea Rota.
2013-10-11 03:04:11 -04:00
Joey Hess
aa5b2f1c3c basic fsck form UI 2013-10-11 00:46:04 -04:00
Joey Hess
e9745f2da2 add config page for fsck, and alert with button when a fsck is running 2013-10-10 18:05:53 -04:00
Joey Hess
18f4d1b400 queue downloads of keys that fsck finds with bad content 2013-10-10 17:27:00 -04:00
Joey Hess
82083658cf stop fsck when scheduled activity is removed 2013-10-10 16:22:55 -04:00
Joey Hess
6a331d1261 got delay calculation backwards 2013-10-10 12:55:30 -04:00
Joey Hess
5b70eac659 fix option name 2013-10-10 12:49:54 -04:00
Joey Hess
c80bc53960 cronner builds, should work (untested)
I probably need to improve handling of the PleaseTerminate exception to
kill the fsck process. Also, if fsck finds bad files, something needs
to requeue downloads of them. Otherwise, this should work, but is probably
quite buggy since I have only tested the pure code over the past 2 days.
2013-10-08 18:13:08 -04:00
Joey Hess
af5e1d0494 half way complete cronner thread to run scheduled activities 2013-10-08 11:48:28 -04:00