Merge branch 'po/doc-assume-unchanged'
[gitweb.git] / Documentation / git-update-index.txt
index d6de4a008ce74b9aa3f83035b4392e8d4505fae7..aff01798cdf6b114009eae8dfc4f2866a8a24d17 100644 (file)
@@ -82,20 +82,18 @@ OPTIONS
         Set the execute permissions on the updated files.
 
 --[no-]assume-unchanged::
-       When these flags are specified, the object names recorded
-       for the paths are not updated.  Instead, these options
-       set and unset the "assume unchanged" bit for the
-       paths.  When the "assume unchanged" bit is on, Git stops
-       checking the working tree files for possible
-       modifications, so you need to manually unset the bit to
-       tell Git when you change the working tree file. This is
+       When this flag is specified, the object names recorded
+       for the paths are not updated.  Instead, this option
+       sets/unsets the "assume unchanged" bit for the
+       paths.  When the "assume unchanged" bit is on, the user
+       promises not to change the file and allows Git to assume
+       that the working tree file matches what is recorded in
+       the index.  If you want to change the working tree file,
+       you need to unset the bit to tell Git.  This is
        sometimes helpful when working with a big project on a
        filesystem that has very slow lstat(2) system call
        (e.g. cifs).
 +
-This option can be also used as a coarse file-level mechanism
-to ignore uncommitted changes in tracked files (akin to what
-`.gitignore` does for untracked files).
 Git will fail (gracefully) in case it needs to modify this file
 in the index e.g. when merging in a commit;
 thus, in case the assumed-untracked file is changed upstream,
@@ -161,6 +159,17 @@ may not support it yet.
        Only meaningful with `--stdin` or `--index-info`; paths are
        separated with NUL character instead of LF.
 
+--split-index::
+--no-split-index::
+       Enable or disable split index mode. If enabled, the index is
+       split into two files, $GIT_DIR/index and $GIT_DIR/sharedindex.<SHA-1>.
+       Changes are accumulated in $GIT_DIR/index while the shared
+       index file contains all index entries stays unchanged. If
+       split-index mode is already enabled and `--split-index` is
+       given again, all changes in $GIT_DIR/index are pushed back to
+       the shared index file. This mode is designed for very large
+       indexes that take a significant amount of time to read or write.
+
 \--::
        Do not interpret any more arguments as options.
 
@@ -191,7 +200,7 @@ merging.
 To pretend you have a file with mode and sha1 at path, say:
 
 ----------------
-$ git update-index --cacheinfo mode sha1 path
+$ git update-index --cacheinfo <mode>,<sha1>,<path>
 ----------------
 
 '--info-only' is used to register files without placing them in the object