Skip to content
  • Junio C Hamano's avatar
    Use core.filemode. · 3e09cdfd
    Junio C Hamano authored
    
    
    With "[core] filemode = false", you can tell git to ignore
    differences in the working tree file only in executable bit.
    
     * "git-update-index --refresh" does not say "needs update" if index
       entry and working tree file differs only in executable bit.
    
     * "git-update-index" on an existing path takes executable bit
       from the existing index entry, if the path and index entry are
       both regular files.
    
     * "git-diff-files" and "git-diff-index" without --cached flag
       pretend the path on the filesystem has the same executable
       bit as the existing index entry, if the path and index entry
       are both regular files.
    
    If you are on a filesystem with unreliable mode bits, you may need to
    force the executable bit after registering the path in the index.
    
     * "git-update-index --chmod=+x foo" flips the executable bit of the
       index file entry for path "foo" on.  Use "--chmod=-x" to flip it
       off.
    
    Note that --chmod only works in index file and does not look at nor
    update the working tree.
    
    So if you are on a filesystem and do not have working executable bit,
    you would do:
    
     1. set the appropriate .git/config option;
    
     2. "git-update-index --add new-file.c"
    
     3. "git-ls-files --stage new-file.c" to see if it has the desired
       mode bits.  If not, e.g. to drop executable bit picked up from the
       filesystem, say "git-update-index --chmod=-x new-file.c".
    
    Signed-off-by: default avatarJunio C Hamano <junkio@cox.net>
    3e09cdfd