aboutsummaryrefslogtreecommitdiff
path: root/Assistant/Types
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2013-10-27 16:42:13 -0400
committerGravatar Joey Hess <joey@kitenet.net>2013-10-27 16:42:13 -0400
commitbe581a2722e78f8a2e59e5ca78a1090efc432307 (patch)
treea24cb16a152bcce74bf4ae279056ac1f17ab4695 /Assistant/Types
parent4b0b07f1783705714dd75ca1812ab676260e5728 (diff)
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.
Diffstat (limited to 'Assistant/Types')
-rw-r--r--Assistant/Types/RemoteProblem.hs18
1 files changed, 18 insertions, 0 deletions
diff --git a/Assistant/Types/RemoteProblem.hs b/Assistant/Types/RemoteProblem.hs
new file mode 100644
index 000000000..539da3db9
--- /dev/null
+++ b/Assistant/Types/RemoteProblem.hs
@@ -0,0 +1,18 @@
+{- git-annex assistant remote problem detection
+ -
+ - Copyright 2013 Joey Hess <joey@kitenet.net>
+ -
+ - Licensed under the GNU GPL version 3 or higher.
+ -}
+
+module Assistant.Types.RemoteProblem where
+
+import Types
+import Utility.TList
+
+import Control.Concurrent.STM
+
+type RemoteProblemChan = TList Remote
+
+newRemoteProblemChan :: IO RemoteProblemChan
+newRemoteProblemChan = atomically newTList