+![screenie](screenshot-margin.png)\r
+\r
+Requirements\r
+=====\r
+\r
+Emacs 24+. On OS X, Emacs 24.3 or higher is recommended.\r
+\r
+Notes\r
+=====\r
+\r
+* By default `diff-hl-mode` uses the corresponding VC diff command, so\r
+ it's only accurate when the buffer is in saved state. Check out\r
+ `diff-hl-flydiff-mode`, it aims to handle unsaved buffers as well.\r
+\r
+* We conflict with other modes when they put indicators on the fringe,\r
+ such as [Flycheck](https://github.com/flycheck/flycheck). This is\r
+ rarely a significant problem, since if you're using such a mode,\r
+ you'd usually want to fix all errors and warnings before continuing,\r
+ and then the conflicting indicators go away.\r
+\r
+* There's no fringe when Emacs is running in the console, but the navigation\r
+ and revert commands still work. Consider turning `diff-hl-margin-mode` on,\r
+ to show the indicators in the margin instead.\r
+\r
+* Frame-local and buffer-local values of `line-spacing` are not supported.\r
+\r
+* Fringe width up to 16 works best (because we can't define a bitmap\r
+ with width above that number).\r
+\r
+* [emacs-git-gutter](https://github.com/syohex/emacs-git-gutter) shows\r
+ indicators in the margin by default, allows you to customize how the\r
+ indicators look more easily, and has a "stage hunk" command.\r
+\r
+Integration\r
+=====\r
+\r
+If you're using some package other than `vc` to commit changes, it might\r
+not run `vc-checkin-hook` after commits. In that case, you'll need to\r
+either add `diff-hl-update` to the hook it does run, or advise some\r
+function that's called in the buffer after its state has changed.\r
+\r
+psvn\r
+-----\r
+\r
+```lisp\r
+(defadvice svn-status-update-modeline (after svn-update-diff-hl activate)\r
+ (diff-hl-update))\r
+```\r
+\r
+Magit\r
+-----\r
+\r
+If you have a recent enough version installed, it defines\r
+`magit-revert-buffer-hook` (or `magit-not-reverted-hook`), which we use.\r