Skip to content
  • Cesar Eduardo Barros's avatar
    mingw: embed a manifest to trick UAC into Doing The Right Thing · fe903976
    Cesar Eduardo Barros authored and Junio C Hamano's avatar Junio C Hamano committed
    On Windows >= Vista, not having an application manifest with a
    requestedExecutionLevel can cause several kinds of confusing behavior.
    
    The first and more obvious behavior is "Installer Detection" of the
    "User Account Control" (also known as "UAC") feature, where Windows
    sometimes decides (by looking at things like the file name and even
    sequences of bytes within the executable) that an executable is an
    installer and should run elevated (causing the well-known popup dialog
    to appear). In Git's context, subcommands such as "git patch-id" or "git
    update-index" fall prey to this behavior.
    
    The second and more confusing behavior is "File Virtualization". It
    means that when files are written without having write permission, it
    does not fail (as expected), but they are instead redirected to
    somewhere else. When the files are read, the original contents are
    returned, though, not the ones that were just written somewhere else.
    Even more confusing, not...
    fe903976