• Show log

    Commit

  • Hash : ec96db57
    Author : Edward Thomson
    Date : 2018-02-20T00:32:38

    checkout test: add core.filemode checkout tests
    
    Add two tests for filemode.
    
    The first ensures that `core.filemode=true` is honored: if we have
    changed the filemode such that a file that _was_ executable (mode 0755)
    is now executable (mode 0644) and we go to check out a branch that has
    otherwise changed the contents of the file, then we should raise a
    checkout conflict for that file.
    
    The second ensures that `core.filemode=false` is honored: in the same
    situation, we set a file that was executable to be non-executable, and
    check out the branch that changes the contents of the file.  However,
    since `core.filemode` is false, we do not detect the filemode change.
    
    We run these tests on both operating systems that obey `core.filemode`
    (eg, POSIX) and those that have no conception of filemode (eg, Win32).
    This ensures that `core.filemode` is always honored, as it is a cache of
    the underlying filesystem's settings.  This ensures that we do not
    make assumptions based on the operating system, and honor the
    configuration setting even if it were misconfigured.