summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/download.mdwn17
-rw-r--r--doc/install.mdwn2
-rw-r--r--doc/tips/assume-unstaged.mdwn31
3 files changed, 49 insertions, 1 deletions
diff --git a/doc/download.mdwn b/doc/download.mdwn
index e1257d261..bfde849f8 100644
--- a/doc/download.mdwn
+++ b/doc/download.mdwn
@@ -15,3 +15,20 @@ From time to time, releases of git-annex are uploaded
Some operating systems include git-annex in easily prepackaged form and
others need some manual work. See [[install]] for details.
+
+## git branches
+
+The git repository has some branches:
+
+* `debian-stable` contains the latest backport of git-annex to Debian
+ stable.
+* `no-s3` disables the S3 special remote, for systems that lack the
+ necessary haskell library.
+* `old-monad-control` is for systems that don't have a newer monad-control
+ library.
+* `tweak-fetch` adds support for the git tweak-fetch hook, which has
+ been proposed and implemented but not yet accepted into git.
+* `ghc7.4` is for use this that version of ghc.
+* `setup` contains configuration for this website
+* `pristine-tar` contains [pristine-tar](http://kitenet.net/~joey/code/pristine-tar)
+ data to create tarballs of any past git-annex release.
diff --git a/doc/install.mdwn b/doc/install.mdwn
index b48914197..8de24d40d 100644
--- a/doc/install.mdwn
+++ b/doc/install.mdwn
@@ -21,7 +21,7 @@ As a haskell package, git-annex can be installed using cabal. For example:
To build and use git-annex, you will need:
* Haskell stuff
- * [The Haskell Platform](http://haskell.org/platform/)
+ * [The Haskell Platform](http://haskell.org/platform/) (GHC 7.4 or newer)
* [MissingH](http://github.com/jgoerzen/missingh/wiki)
* [pcre-light](http://hackage.haskell.org/package/pcre-light)
* [utf8-string](http://hackage.haskell.org/package/utf8-string)
diff --git a/doc/tips/assume-unstaged.mdwn b/doc/tips/assume-unstaged.mdwn
new file mode 100644
index 000000000..ef74d9bd4
--- /dev/null
+++ b/doc/tips/assume-unstaged.mdwn
@@ -0,0 +1,31 @@
+[[!meta title="using assume-unstages to speed up git with large trees of annexed files"]]
+
+Git update-index's assume-unstaged feature can be used to speed
+up `git status` and stuff by not statting the whole tree looking for changed
+files.
+
+This feature works quite well with git-annex. Especially because git
+annex's files are immutable, so arn't going to change out from under it,
+this is a nice fit. If you have a very large tree and `git status` is
+annoyingly slow, you can turn it on:
+
+ git config core.ignoreStat true
+
+When git mv and git rm are used, those changes *do* get noticed, even
+on assume-unchanged files. When new files are added, eg by `git annex add`,
+they are also noticed.
+
+There are two gotchas. Both occur because `git add` does not stage
+assume-unchanged files.
+
+1. When an annexed file is moved to a different directory, it updates
+ the symlink, and runs `git add` on it. So the file will move,
+ but the changed symlink will not be noticed by git and it will commit a
+ dangling symlink.
+2. When using `git annex migrate`, it changes the symlink and `git adds`
+ it. Again this won't be committed.
+
+These can be worked around by running `git update-index --really-refresh`
+after performing such operations. I hope that `git add` will be changed
+to stage changes to assume-unchanged files, which would remove this
+only complication. --[[Joey]]