Improve lock handling
[git.git] / Documentation / git-update-index.txt
index 8d55659..58b9e49 100644 (file)
@@ -1,6 +1,5 @@
 git-update-index(1)
 ===================
-v0.1, May 2005
 
 NAME
 ----
@@ -10,11 +9,13 @@ git-update-index - Modifies the index or directory cache
 SYNOPSIS
 --------
 'git-update-index'
-            [--add] [--remove] [--refresh] [--replace]
-            [--ignore-missing]
-            [--force-remove]
+            [--add] [--remove | --force-remove] [--replace] 
+            [--refresh [-q] [--unmerged] [--ignore-missing]]
             [--cacheinfo <mode> <object> <file>]\*
-            [--info-only]
+            [--chmod=(+|-)x]
+            [--info-only] [--index-info]
+            [-z] [--stdin]
+            [--verbose]
             [--] [<file>]\*
 
 DESCRIPTION
@@ -42,12 +43,28 @@ OPTIONS
        Looks at the current cache and checks to see if merges or
        updates are needed by checking stat() information.
 
+-q::
+        Quiet.  If --refresh finds that the cache needs an update, the
+        default behavior is to error out.  This option makes
+        git-update-index continue anyway.
+
+--unmerged::
+        If --refresh finds unmerged changes in the cache, the default 
+        behavior is to error out.  This option makes git-update-index 
+        continue anyway.
+
 --ignore-missing::
        Ignores missing files during a --refresh
 
 --cacheinfo <mode> <object> <path>::
        Directly insert the specified info into the cache.
        
+--index-info::
+        Read index info from stdin.
+
+--chmod=(+|-)x::
+        Set the execute permissions on the updated files.        
+
 --info-only::
        Do not create objects in the object database for all
        <file> arguments that follow this flag; just insert
@@ -65,12 +82,24 @@ OPTIONS
        that conflicts with the entry being added are
        automatically removed with warning messages.
 
+--stdin::
+       Instead of taking list of paths from the command line,
+       read list of paths from the standard input.  Paths are
+       separated by LF (i.e. one path per line) by default.
+
+--verbose::
+        Report what is being added and removed from index.
+
+-z::
+       Only meaningful with `--stdin`; paths are separated with
+       NUL character instead of LF.
+
 --::
        Do not interpret any more arguments as options.
 
 <file>::
        Files to act on.
-       Note that files begining with '.' are discarded. This includes
+       Note that files beginning with '.' are discarded. This includes
        `./file` and `dir/./file`. If you don't want this, then use     
        cleaner names.
        The same applies to directories ending '/' and paths with '//'
@@ -92,7 +121,7 @@ Using --cacheinfo or --info-only
 current working directory.  This is useful for minimum-checkout
 merging.
 
-  To pretend you have a file with mode and sha1 at path, say:
+To pretend you have a file with mode and sha1 at path, say:
 
    $ git-update-index --cacheinfo mode sha1 path
 
@@ -112,6 +141,17 @@ To update and refresh only the files already checked out:
    git-checkout-index -n -f -a && git-update-index --ignore-missing --refresh
 
 
+Configuration
+-------------
+
+The command honors `core.filemode` configuration variable.  If
+your repository is on an filesystem whose executable bits are
+unreliable, this should be set to 'false'.  This causes the
+command to ignore differences in file modes recorded in the
+index and the file mode on the filesystem if they differ only on
+executable bit.   On such an unfortunate filesystem, you may
+need to use `git-update-index --chmod=`.
+
 Author
 ------
 Written by Linus Torvalds <torvalds@osdl.org>