summaryrefslogtreecommitdiff
path: root/doc
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
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')
-rw-r--r--doc/bugs/not_possible_to_have_annex_on_a_separate_filesystem.mdwn13
-rw-r--r--doc/forum/performance_improvement:_git_on_ssd__44___annex_on_spindle_disk.mdwn11
2 files changed, 20 insertions, 4 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]]
diff --git a/doc/forum/performance_improvement:_git_on_ssd__44___annex_on_spindle_disk.mdwn b/doc/forum/performance_improvement:_git_on_ssd__44___annex_on_spindle_disk.mdwn
index a04c8b040..f70c12702 100644
--- a/doc/forum/performance_improvement:_git_on_ssd__44___annex_on_spindle_disk.mdwn
+++ b/doc/forum/performance_improvement:_git_on_ssd__44___annex_on_spindle_disk.mdwn
@@ -1,3 +1,12 @@
This works with bind-mount, I might try with softlinks as well.
-Going through git's data on push/pull can take ages on a spindle disk even if the repo is rather small in size. This is especially true if you are used to ssd speeds, but ssd storage is expensive. Storing the annex objects on a cheap spindle disk and everything else on a ssd makes things a _lot_ faster.
+Going through git's data on push/pull can take ages on a spindle disk even
+if the repo is rather small in size. This is especially true if you are
+used to ssd speeds, but ssd storage is expensive. Storing the annex objects
+on a cheap spindle disk and everything else on a ssd makes things a _lot_
+faster.
+
+> Update: git-annex supports `.git/annex/` being moved to a different disk
+> than the rest of the repisitory, but does *not* support individual
+> subdirectories, like `.git/annex/objects/` being on a different disk
+> than the main `.git/annex/` directory. --[[Joey]]