summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar wsha.code+ga@b38779424f41c5701bbe5937340be43ff1474b2d <wshacodega@web>2015-09-10 03:33:47 +0000
committerGravatar admin <admin@branchable.com>2015-09-10 03:33:47 +0000
commit609ac7c3213105537ab9bead14156ede722548b4 (patch)
treed2dcd649902b27b819bbc8425a66a27212eddacf
parent1bc446b62c0f941ea21887234fea7cb14091e964 (diff)
-rw-r--r--doc/forum/Central_server_with_automatically_merged_working_tree.mdwn30
1 files changed, 30 insertions, 0 deletions
diff --git a/doc/forum/Central_server_with_automatically_merged_working_tree.mdwn b/doc/forum/Central_server_with_automatically_merged_working_tree.mdwn
new file mode 100644
index 000000000..8b2bb87d6
--- /dev/null
+++ b/doc/forum/Central_server_with_automatically_merged_working_tree.mdwn
@@ -0,0 +1,30 @@
+I would appreciate some feedback on whether the following scheme is feasible or will prove unworkable. I have a few specific questions at the bottom.
+
+# Components
+* An archive of documents to be shared amongst computers
+* A server that stores the archive and retains all of its contents
+* A set of client machines that store only the files that they need and drop the rest
+
+# Desired behavior
+* Clients will run the assistant to handle sync'ing
+* On the server, the archive should be accessible in the working tree so that other users can read the files (they do not need write access).
+* It should be possible to modify the archive on the server while logged into the server
+* Clients can push and pull data. The server does not push or pull data.
+
+# Basic setup
+## Set up the server and one client
+* Create git annex repos on the client and server
+* Add the server as a remote in the client repo
+
+## Keep the server's working directory up to date
+* Add `git merge synced/master master` to the `annex-content` hook described [here](https://git-annex.branchable.com/git-annex-shell/).
+* Add `git merge synced/master master` to the `post-receive` hook.
+
+## Keep server working tree visible to a different group
+* Set `git config core.sharedrepository group` for the repository
+* Add `chgrp -R shared "$(git rev-parse --show-toplevel)"` to the `annex-content`, `post-receive`, and `post-merge` hooks, where `shared` is the name of the group that you want to be able to access the server files.
+
+# Questions
+* I had to add the `post-receive` hook because updates from the assistant were not trigger the `annex-content` hook. Should they trigger it?
+* Are there downsides to merging `synced/master` like this?
+* If I want to edit files on the server, is it safe to edit them in the repo with this set up? Or should I create a second client repo on the server, check out the necessary files there, and then push them to the server like I would from any other client?