summaryrefslogtreecommitdiff
path: root/doc/bugs/not_possible_to_have_annex_on_a_separate_filesystem.mdwn
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2011-11-28 15:26:27 -0400
committerGravatar Joey Hess <joey@kitenet.net>2011-11-28 16:17:55 -0400
commit6869e6023e21698038da7e4a858cbaf6f7b7bbed (patch)
treed6ae8aecbc2b8f65b36f3e0e1dba740d1308bb2e /doc/bugs/not_possible_to_have_annex_on_a_separate_filesystem.mdwn
parentff2d9c828379ce29e5feb6ac770996be04ac072f (diff)
support .git/annex on a different disk than the rest of the repo
The only fully supported thing is to have the main repository on one disk, and .git/annex on another. Only commands that move data in/out of the annex will need to copy it across devices. There is only partial support for putting arbitrary subdirectories of .git/annex on different devices. For one thing, but this can require more copies to be done. For example, when .git/annex/tmp is on one device, and .git/annex/journal on another, every journal write involves a call to mv(1). Also, there are a few places that make hard links between various subdirectories of .git/annex with createLink, that are not handled. In the common case without cross-device, the new moveFile is actually faster than renameFile, avoiding an unncessary stat to check that a file (not a directory) is being moved. Of course if a cross-device move is needed, it is as slow as mv(1) of the data.
Diffstat (limited to 'doc/bugs/not_possible_to_have_annex_on_a_separate_filesystem.mdwn')
-rw-r--r--doc/bugs/not_possible_to_have_annex_on_a_separate_filesystem.mdwn13
1 files changed, 10 insertions, 3 deletions
diff --git a/doc/bugs/not_possible_to_have_annex_on_a_separate_filesystem.mdwn b/doc/bugs/not_possible_to_have_annex_on_a_separate_filesystem.mdwn
index e9a3ee95a..7daf03284 100644
--- a/doc/bugs/not_possible_to_have_annex_on_a_separate_filesystem.mdwn
+++ b/doc/bugs/not_possible_to_have_annex_on_a_separate_filesystem.mdwn
@@ -14,12 +14,19 @@ But when trying to add files i get:
I have tried both using bind-mount and with a sym-link.
-> I don't think this was a reversion; the forum post doesn't really
-> indicate it ever worked.
->
> Grepping for `renameFile` and `createLink` will find all the places
> in git-annex that assume one filesystem. These would have to be changed
> to catch errors and fall back to expensive copying.
>
> Putting a separate repository on the file server could work better
> depending on what you're trying to do. --[[Joey]]
+
+>> I've added support for putting `.git/annex` on a separate filesystem
+>> from the rest of the git repository.
+>>
+>> Putting individual subdirectories like `.git/annex/objects` on separate
+>> filesystems from other subdirectories is not fully supported; it may
+>> work but it may be slow and a few things (like `git annex migrate`) are
+>> known to fail due to using hard links. I don't think this is worth
+>> supporting. [[done]]
+>> --[[Joey]]