summaryrefslogtreecommitdiff
path: root/doc/bugs/windows_isExecutable_fail.mdwn
diff options
context:
space:
mode:
Diffstat (limited to 'doc/bugs/windows_isExecutable_fail.mdwn')
-rw-r--r--doc/bugs/windows_isExecutable_fail.mdwn27
1 files changed, 0 insertions, 27 deletions
diff --git a/doc/bugs/windows_isExecutable_fail.mdwn b/doc/bugs/windows_isExecutable_fail.mdwn
deleted file mode 100644
index 41e5b29a2..000000000
--- a/doc/bugs/windows_isExecutable_fail.mdwn
+++ /dev/null
@@ -1,27 +0,0 @@
-On Windows, isExecutable fails to detect a file that is indeed executable
-as such. This prevents git-annex from running the pre-commit-hook
-on Windows.
-
-getFileStatus yields a fileMode of 100666, which is
-clearly a dummy mode. Not surprising, since unix-compat is partial stubs
-on windows.
-
-Actually, isExecutable is ok (it needs to check unix modes because it is
-used on file modes coming out of git). But, getFileStatus is the wrong
-thing to be using on Windows to check if a hook exists and is executable.
-
-I don't see anything in Win32 or Win32-extras on hackage that can check
-executablility. Looking at git's source, it uses `access(path, X_OK) < 0`;
-haskell equivilant is System.Posix.Files.fileAccess, but the version
-in unix-compat has the same problem as checking getFileStatus's fileMode.
-
-I think it's reasonable to assume that if a hook exists on windows, it's
-intended to be executable, and try to run it. Actually, testing with
-msysgit, it runs hooks whether or not they have the execute bit set!
-So, done that now.
-
-However, now git-annex tries to run the hook but fails when it's a shell
-script because #!/bin/sh is useless on windows. It looks to me like msysgit
-runs "sh hook" to work around that, and it is in fact parsing the shebang
-line and dispatching the interpreter. Ugh. (Also, pre-commit.bat doesn't
-get run.) Ok, added this same hack to git-annex. [[done]] --[[Joey]]