2013-05-31 5 views
0

Windows에 Collabnet Subversion Edge v3.3.1이 설치되어 있습니다. 기본 액세스 제한이 이미 활성화되어 있지만 다음과 같이 유연성을 제공하지는 않습니다. 1. 사용자가 파일/폴더를 삭제하지 마십시오. 2. 저장소의 파일 수준 사용 권한을 지정하기 위해 와일드 카드 사용Collabnet Subversion Edge가 설치된 Windows에서 svnperms.py가 작동하지 않습니다.

그러므로 , 내가 봤 거든 svnperms.py 내 요구 사항에 맞게 발견. 나는 인터넷상의 지침을 따르고 svnperms.py에 접근 제한을 설정했다.

내 사전 커밋 후크는 다음과 같습니다 : 나는 저장소에 폴더 아래에있는 A 파일을 삭제 m.b 사용자를함으로써이 테스트를 시도

[groups] 
group1 = sowmya.dass 
group2 = m.b 
[repos] 
a/.* = @group1(update) 
a/.* = @group2(delete) 

처럼

set REPOS=%1 
set TXN=%2 

REM "C:\csvn\Python25\python.exe" "C:\csvn\data\repositories\repos\hooks\svnperms.py" -r "%repos%" -t "%txn%" - f "C:\csvn\data\repositories\repos\hooks\svnperms.conf" 

"C:\csvn\Python25\python.exe" "C:\csvn\data\repositories\repos\hooks\svnperms.py" - f "C:\csvn\data\repositories\repos\hooks\svnperms.conf" -r "%REPOS%" -t "%TXN%"||exit 1; 
exit 0; 

내 구성 파일을 찾습니다. 사용자가 액세스 할 수 있기 때문에 그는 그것을 할 수 있어야하지만 그는 커밋 할 때 나는 아래의 오류가 발생합니다 :

명령 :
삭제를 커밋 : C : \ m_ws_edge \ \ pom.xml 파일
오류 : 커밋 (세부 사항에 따라) 실패 :
오류 :
오류 : svnlook 저자의 C : \ csvn \ 데이터 \ 저장소 \의 repos -t 5-C
오류에 의해 차단 커밋 후크 출력 (종료 코드 1) 사전은 커밋 : '{'가 내부 또는 외부 명령으로 인식되지 않습니다.
오류 : 작동 가능한 프로그램 또는 배치 file.error : 명령 실패 : svnlook 작성자
오류 : C : \ csvn \ data \ repositories \ repos -t 5-c
오류 : '{'가 내부 또는 외부 명령으로 인식되지 않습니다.
오류 : 작동 가능한 프로그램 또는 배치 파일.
완료 :

사용자가 액세스 권한을 부여 받았는지 여부에 관계없이 모든 사용자가 작업을 시도하면 동일한 오류가 발생합니다.

비슷한 문제가 논의 된 How to control changes to tags in SVN server on Windows에 이전 게시물을 보았습니다. 그러나이 솔루션은 필자의 요구 사항에 맞지 않습니다. 또한 svnperms.py는 UNIX에서만 작동하는 기본 svnlook 명령 때문에 Windows에서 작동하지 않는다고 언급합니다. 나는 또한 비슷한 문제를 언급 인터넷에서 다른 게시물을 볼 일이 있었지만 svnperms.py 창문에 대한 작업에 대한 모든 해결책을 찾을 수 없습니다.

누군가가 나를 도울 수 : 1. 수정 위의 오류와 파일을 삭제 사용자를 포기 할 수있는 내 위에서 언급 한 요구 사항에 맞게 창 및/또는 2. 대체 솔루션에 svnperms.py 작업을 얻을 수/폴더 및 파일 기반 액세스 제한에서 와일드 카드를 사용할 수 있습니다.

감사합니다.

감사

Sowmya 다스는

답변

0

문제는 훅에있는 것으로 보이지 않는다. 그것은 svnperms.py에있는 것처럼 보입니다.

프로그램 중 하나에 대한 경로를 찾을 수 없습니다. 후크는 맨손으로 시작합니다.(짝수 경로가 설정되지 않음)

또한 Subversion Edge와 관련이없는 것으로 보입니다. 후크는 기본 Subversion "엔진"에 의해 처리됩니다.

-edit-
here 문서를보고 싶을 수 있습니다. svnperms의 .Net 포트입니다.

여기에 내가 돈 (노출 된 환경 관련) 확인 뭔가 다른 Set up svnperms pre-commit hook

1

가의 '후크가 실행 파일을 찾지 못하는 믿습니다. 1의 종료 코드가 있으며 255이 아닙니다.

여기 후크가 당신에게 다시 전달되는 오류 출력입니다 :

svnlook author C:\csvn\data\repositories\repos -t 5-c 
'{' is not recognized as an internal or external command, 
operable program or batch file.error: command failed: svnlook author 

C:\csvn\data\repositories\repos -t 5-c 
'{' is not recognized as an internal or external command, 
operable program or batch file. 

내가 파이썬 스크립트의 라인 187에서 생성 된 것으로 출력 command failed: svnlook author를 참조하십시오.

작업이 매우 간단합니다. svnlook 명령을 실행하려면 SVNLook 클래스가 만들어집니다. 이것은 라인 # 174에 정의되어 있습니다. 이 클래스에 대한 # 233 행에 정의 된 author 메소드가 있습니다. Line # 243이이 행을 실행하고 작성자를 찾습니다.

svnlook author 0이 아닌 상태, (라인 # 183), 명령 문자열을 작성 반환하지 않는 경우 다음

svnlook author C:\csvn\data\repositories\repos -t 5-c 

반환 된 오류 문자열 :

'{' is not recognized as an internal or external command, 
operable program or batch file.error: 

을 그리고 마지막으로

command failed: svnlook author 

나는 마지막 세 줄의 출처를 100 % 확신하지 못합니다.

svn author C:\csvn\data\repositories\repos -t 5-c이 나에게 맞아 보입니다. '{' is not recognized as an internal or external command 문자열은 svnlook 명령에 대한 응답이 아니어야합니다.

시스템에 어딘가에 Perl 버전 svnlook이 숨어 있는지 궁금합니다. 나는 Windows 시스템에서, %PATH%%PATHEXEC% 환경 변수가 0이 아닌 것으로 믿는다.

pre-commit.bat 스크립트를 실행할 때 % PATH %를 인쇄하여 인쇄 할 수 있는지 확인하십시오. 나는 당신이 할 필요가 추가 생각 :

PATH 1>&2 

또는 precommit.bat 스크립트에 유사한. 그런 다음 svnlook 명령이 C:\csvn에 나오기 전에 실행할 수있는 다른 svnlook.bat이 시스템에 있는지 확인하십시오.

pre-commit 후크 스크립트를 사용해 볼 수도 있습니다. Perl로 작성되었지만 제어 파일을 사용하여 권한을 정의하고 요청한 모든 것을 수행 할 수 있습니다. 내 스크립트에서는 svnlook의 위치를 ​​지정해야하며 이는 시스템의 어딘가에 svnlook 명령을 실행하고있을 가능성을 제거합니다.