diff options
Diffstat (limited to 'doc')
-rw-r--r-- | doc/download.mdwn | 17 | ||||
-rw-r--r-- | doc/install.mdwn | 2 | ||||
-rw-r--r-- | doc/tips/assume-unstaged.mdwn | 31 |
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]] |