• Show log

    Commit

  • Hash : 14997dc5
    Author : Russell Belfer
    Date : 2013-10-08T12:45:43

    More filemode cleanups for FAT on MacOS
    
    This cleans up some additional issues.  The main change is that
    on a filesystem that doesn't support mode bits, libgit2 will now
    create new blobs with GIT_FILEMODE_BLOB always instead of being
    at the mercy to the filesystem driver to report executable or not.
    This means that if "core.filemode" lies and claims that filemode
    is not supported, then we will ignore the executable bit from the
    filesystem.  Previously we would have allowed it.
    
    This adds an option to the new git_repository_reset_filesystem to
    recurse through submodules if desired.  There may be other types
    of APIs that would like a "recurse submodules" option, but this
    one is particularly useful.
    
    This also has a number of cleanups, etc., for related things
    including trying to give better error messages when problems come
    up from the filesystem.  For example, the FAT filesystem driver on
    MacOS appears to return errno EINVAL if you attempt to write a
    filename with invalid UTF-8 in it.  We try to capture that with a
    better error message now.