문제

그러나 프리와 포스트 실패의 일부 후크를 구현하려고합니다. 커밋하려고 할 때 두 가지 모두에 대해 동일한 오류 메시지를받습니다.

'*-commit' hook failed (did not exit cleanly: apr_exit_why_e was 2, exitcode was
-1073741515).   with no output.

ExitCode -1073741515는 이상한 것으로 보이며 Google -Fu의 빠른 부분이 다음과 같습니다.

HEX DWORT로 취급되는 오류 코드는 0XC0000135입니다.

그것은 sev = 11, c = 0, r = 0, facility = 0, code = 0x0135입니다.

값 0xc0000135는 다음 정의와 함께 ntstatus.h에서 찾을 수 있습니다.

//
// MessageId: STATUS_DLL_NOT_FOUND
//
// MessageText:
//
//  {Unable To Locate Component}
//  This application has failed to start because %hs was not found.
// Re-installing the application may fix this problem.
//
#define STATUS_DLL_NOT_FOUND             ((NTSTATUS)0xC0000135L)

좋아요, DLL을 찾지 못했습니다. 너무 어려워서는 안됩니까? 나는이 갈고리로 평화로운 SVN이있는 VM을 가지고 있습니다. 그래서 나는 Filemon.exe를 실행하고 두 기계에서 의존합니다.

나는 여전히 두 서버의 Filemon Logs를 통해 슬로깅하고 있으며, Commit Hook에 부딪 칠 수있는 실행 파일에 고유 한 문제를 제시하지 않습니다.

나는 이벤트 로그에서 빠른 엿보기를하기로 결정했고, 오 소년!

'pre -commit'후크가 실패했습니다 (깨끗하게 종료되지 않았습니다 : apr_exit_why_e는 2, Exitcode는 -1073741515였습니다). 출력이 없습니다. [409, #165001

여분의 Smidgens 정보,이 [409, #165001]는 Google 전체에 있지만 실제로 도움이되는 것을 선택하지는 않습니다.

후크는 세 가지 매개 변수로 실행 파일을 명시 적으로 호출하고 있습니다.

C : subversionnotify subversionnotify.exe %1 %2 -pre

나는 심지어 변수를 사용하려고 노력했습니다.

SET REPOS=%1
SET REV=%2
C:\SubversionNotify\SubversionNotify.exe %REPOS% %REV% -pre

Filemon Logs를 보면 SubversionNotify.exe가 결코 만들지 않는다는 것을 보여줍니다.

그것은 내가 이것을 구현하는 데 훨씬 더 많은 시간을 할애 할 수없는 시점에 도달하고 있습니다. 당신은 저의 유일한 희망입니다.

서버 사양 :

Windows XP, VisualSVN 서버 실행, 최신 릴리스.

편집 : SubversionNotify가 예외를 던지고있는 것처럼 보입니다. Exe.exe로 돌아가서 DLL이 실패한 것을 확인하십시오.

오류는 다음과 같습니다.

응용 프로그램이 제대로 초기화되지 않았다 (0xc0000135).

그 0xc0000135는 이전에 볼 수있었습니다. Dll Hunt Ahoy!

도움이 되었습니까?

해결책 2

나는 그 솔루션을 여기에서 공유 할 것이라고 생각했다.

SubversionNotify는 .NET로 작성되었습니다.
서버에는 .NET 프레임 워크가 설치되지 않았습니다.
VM이 그랬습니다.

나는 지금 Dunce 모자를 쓰고있다.

다른 팁

일반적으로 Commit Hooks의 문제는 환경이 전혀 없다는 것입니다 (따라서 경로는 없음). 모든 참조는 고통스럽게 명시되어야합니다. 나는 보통 디렉토리를 적절한 디렉토리로 변경하고 명령을 실행하는 작은 배치 파일을 만들게됩니다.

편집하다:

디렉토리를 c : subversionnotify로 변경하십시오

아마도 프로그램을 실행하는 데 필요한 런타임 DLL이 없을 수도 있습니다. 기억하십시오 : 길은 없습니다. 명령 줄 창에서 경로를 아무것도 설정하지 않음으로써이를 시뮬레이션 할 수 있습니다. 경로 =.

메모장과 같은 간단한 명령이 작동하지 않는지 확인하십시오. 그러면 exe가 작동합니까? 누락 된 DLL이 어디에 있는지 확인하고 배치 파일의 시작 부분에서 경로를 작성하십시오.

답을 게시 해 주셔서 감사합니다. 당신이하지 않았다면 나는 이것을 달리기 위해 더 많은 시간을 보냈고 지금보다 더 어리석은 느낌을 받았을 것입니다. 그냥 상자를 날려 버렸고 VisualSVN을 설치하고 SubversionNotify를 설치했으며 왜 작동하지 않는지 알 수 없었습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top