Hooks don't execute on Windows: "%1 is not a valid win32 application"
Sebazzz opened this issue · comments
On Windows I'm running into the issue of hooks not properly executing.
2019-11-06T10:36:04,992 ERROR [git] [SvnServer-thread-16] (GitPushEmbedded.java:146) - Hook failed: D:\Gitea\data\repositories\adm-sebastiaan\toxic-translation-test.git\hooks\pre-receive
java.io.IOException: Cannot run program "D:\Gitea\data\repositories\adm-sebastiaan\toxic-translation-test.git\hooks\pre-receive" (in directory "D:\Gitea\data\repositories\adm-sebastiaan\toxic-translation-test.git"): CreateProcess error=193, %1 is not a valid Win32 application
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1128) ~[?:?]
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1071) ~[?:?]
at svnserver.repository.git.push.GitPushEmbedded.lambda$runReceiveHook$0(GitPushEmbedded.java:82) ~[git-as-svn.jar:?]
at svnserver.repository.git.push.GitPushEmbedded.runHook(GitPushEmbedded.java:131) ~[git-as-svn.jar:?]
at svnserver.repository.git.push.GitPushEmbedded.runReceiveHook(GitPushEmbedded.java:81) ~[git-as-svn.jar:?]
at svnserver.repository.git.push.GitPushEmbedded.push(GitPushEmbedded.java:63) ~[git-as-svn.jar:?]
at svnserver.repository.git.GitWriter$GitCommitBuilder.commit(GitWriter.java:230) ~[git-as-svn.jar:?]
at svnserver.server.command.CommitCmd$EditorPipeline.lambda$closeEdit$7(CommitCmd.java:521) ~[git-as-svn.jar:?]
at svnserver.repository.git.GitRepository.wrapLock(GitRepository.java:131) ~[git-as-svn.jar:?]
at svnserver.repository.git.GitRepository.wrapLockWrite(GitRepository.java:122) ~[git-as-svn.jar:?]
at svnserver.server.command.CommitCmd$EditorPipeline.closeEdit(CommitCmd.java:515) ~[git-as-svn.jar:?]
at svnserver.server.command.LambdaCmd.process(LambdaCmd.java:40) ~[git-as-svn.jar:?]
at svnserver.server.command.CommitCmd$EditorPipeline.editorCommand(CommitCmd.java:639) ~[git-as-svn.jar:?]
at svnserver.server.SvnServer.serveClient(SvnServer.java:230) ~[git-as-svn.jar:?]
at svnserver.server.SvnServer.lambda$run$1(SvnServer.java:197) ~[git-as-svn.jar:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
at java.lang.Thread.run(Thread.java:830) [?:?]
Caused by: java.io.IOException: CreateProcess error=193, %1 is not a valid Win32 application
at java.lang.ProcessImpl.create(Native Method) ~[?:?]
at java.lang.ProcessImpl.<init>(ProcessImpl.java:483) ~[?:?]
at java.lang.ProcessImpl.start(ProcessImpl.java:158) ~[?:?]
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1107) ~[?:?]
... 17 more
Running on:
- Windows Server 2016
- jdk 13.0.1
Configured with:
- gitea - but the repositories are manually mapped using
!listmapping
because I only need two
Gitea installs some hooks to update its internal metadata. These hooks are bash scripts which are executed in the git-installed Cygwin distribution (bash in cygwin). I believe that is also the solution for this: git hooks are to be executed in a cygwin environment.
Please, try setting pusher: !pushNative {}
inside repository:
section as a workaround. It expects that git.exe
is available on %PATH%
.
That works fine. Apologies, I must have overlooked it in the documentation.
It's not documented :)