aboutsummaryrefslogtreecommitdiff
path: root/doc/tuning.mdwn
diff options
context:
space:
mode:
authorGravatar Joey Hess <joeyh@joeyh.name>2015-01-27 17:38:06 -0400
committerGravatar Joey Hess <joeyh@joeyh.name>2015-01-27 17:38:06 -0400
commitdf81023501e2b0d930ec90cc6f5a6c6735f84818 (patch)
tree5bd3b9d8f91464bd27c9d86f700b975a76067147 /doc/tuning.mdwn
parent1e07d61b9669f85a02551d7858177bd33ffaea6f (diff)
Repository tuning parameters can now be passed when initializing a repository for the first time.
* init: Repository tuning parameters can now be passed when initializing a repository for the first time. For details, see http://git-annex.branchable.com/tuning/ * merge: Refuse to merge changes from a git-annex branch of a repo that has been tuned in incompatable ways.
Diffstat (limited to 'doc/tuning.mdwn')
-rw-r--r--doc/tuning.mdwn44
1 files changed, 44 insertions, 0 deletions
diff --git a/doc/tuning.mdwn b/doc/tuning.mdwn
new file mode 100644
index 000000000..761071b6b
--- /dev/null
+++ b/doc/tuning.mdwn
@@ -0,0 +1,44 @@
+git-annex now has experimental support for tuning a repository for
+different work loads.
+
+For example, a repository with a very large number of files in it may work
+better if git-annex uses some nonstandard hash format, for either the
+`.git/annex/objects/` directory, or for the log files in the git-annex
+branch.
+
+A repository can currently only be tuned when it is first created; this is
+done by passing `-c name=value` parameters to `git annex init`.
+
+For example, this will make git-annex use only 1 level for hash directories
+in `.git/annex/objects`:
+
+ git -c annex.tune.objecthashdirectories=1 annex init
+
+It's very important to keep in mind that this makes a nonstandard format
+git-annex repository. In general, this cannot safely be used with
+git-annex older than version 5.20150128. Older version of git-annex will
+not understand and will get confused and perhaps do bad things.
+
+Also, it's not safe to merge two separate git repositories that have been
+tuned differently (or one tuned and the other one not). git-annex will
+prevent merging their git-annex branches together, but it cannot prevent
+`git merge remote/master` merging two branches, and the result will be ugly
+at best (`git annex fix` can fix up the mess somewhat).
+
+Again, tuned repositories are an experimental feature; use with caution!
+
+The following tuning parameters are available:
+
+* `annex.tune.objecthashdirectories` (default: 2)
+ Sets the number of hash directories to use in `.git/annex/objects/`
+
+* `annex.tune.objecthashlower` (default: false)
+ Set to true to make the hash directories in `.git/annex/objects/` use
+ all lower-case.
+
+* `annex.tune.branchhashdirectories` (default: 2)
+ Sets the number of hash directories to use in the git-annex branch.
+
+Note that git-annex will automatically propigate these setting to
+`.git/config` for tuned repsitories. You should never directly change
+these settings in `.git/config`