SVN 저장소에 액세스하기 위해 기본 저자를 변경하려면 어떻게해야합니까?
-
13-09-2019 - |
문제
기본 SVN 사용자 이름을 새 이름으로 변경하고 싶습니다. 이 링크에서 제안 된 솔루션을 시도했습니다 (로컬 SVN 저장소에 액세스하기 위해 기본 저자를 변경하려면 어떻게해야합니까?), 그러나 그것은 작동하지 않습니다.
파괴적인 클라이언트를 사용하여 Command Line과 Aptana를 통해 SVN 저장소에 액세스 할 수 있습니다.
해결책
편집하다:이 답변은 기본 저자를 설정하는 방법이 아니라 로그에서 저자를 변경하는 방법에 관한 것입니다. 지난 몇 번의 커밋을 취소하는 데 도움이 될 수 있기 때문에 솔루션을 여기에 남겨 두겠습니다. 저자는 올바른 사람이 아니 었습니다.
편집 2: .BAT 파일의 후크 스크립트 예제 및 정보.
당신은 많은 세부 사항을 제시하지 않으므로 우리는 추측해야 할 것이며, 첫 번째 생각은 변경을 검증하기 위해 호출 된 후크 스크립트에 관한 것입니다. 이 경우 클라이언트가 문제가되지 않으며 서버 구성 문제입니다.
사전 리브 프로 롭 변경 후크 스크립트를 확인하십시오 ( <repository>/hooks
서버의 디렉토리)는 서버에서 실행할 수 있으며 저자를 변경할 수 있습니다.
다음은 C의 예입니다.
#include <stdio.h>
int main(int argc, char *argv[])
{
int i;
char *repos = argv[1];
char *rev = argv[2];
char *user = argv[3];
char *propname = argv[4];
char *action = argv[5];
if (!strcmp(action, "M") && !strcmp(propname, "svn:log")) return 0;
if (!strcmp(action, "M") && !strcmp(propname, "svn:author")) return 0;
fprintf(stderr, "Changing revision properties other than svn:log or svn:author is prohibited");
return 1;
}
SVN 서버가 Linux에 있으면 단순히 이름을 바꿀 수도 있습니다. pre-revprop-change.tmpl
각 저장소와 함께 자동으로 생성되는 파일 pre-revprop-change
, 서버에 대한 실행 가능 권한을 부여하십시오. 저자 및 로그 변경을 허용하는 것은 다음과 같아야합니다.
#!/bin/sh
REPOS="$1"
REV="$2"
USER="$3"
PROPNAME="$4"
ACTION="$5"
if [ "$ACTION" = "M" -a "$PROPNAME" = "svn:author" ]; then exit 0; fi
if [ "$ACTION" = "M" -a "$PROPNAME" = "svn:log" ]; then exit 0; fi
echo "Changing revision properties other than svn:log or svn:author is prohibited" >&2
exit 1
Windows :
@echo off
REM pre-revprop-change.bat hook script
if "%4" == "svn:log" exit /b 0
if "%4" == "svn:author" exit /b 0
echo "Changing revision properties %4% is prohibited" >&2
exit /b 1
작동하지 않으면 COMSPEC 또는 서버 계정에 적절한 값이없는 경로 변수로 인한 것일 수 있습니다. 또는 후크 스크립트의 권한이 될 수도 있습니다. 이것을 확인하십시오 자세한 내용은 링크.
후크 스크립트의 다른 예가 있습니다 Collabnet에서.
자세한 내용 전복으로 버전 제어 온라인 책 및 또한 여기 (다음 섹션을 확인하십시오).
다른 팁
Eclipse의 경우 (그러나 Eclipse 기반 IDE와 같은 Aptana와 함께 작업해야합니다) :
에서 SVN Repository
의 견해 SVN Perpective
, 그냥 가십시오 Location Properties
원하는 저장소의 자격 증명을 변경합니다. Authentication
상자.
지금부터 저자를 바꿔야합니다.
역사를 다시 쓰려면 Redglyph의 솔루션과 같은 것을 사용해야합니다.
Subversion 1.4.x는 svn 만 있습니다 : 로그가 기본값으로 허용됩니다. pre-revprop-change
파일. 파괴적인 SVN 플러그인과 함께 일식을 사용할 때 문제가 발생할 수 있습니다.
마법의 오류를 해결하기 위해
SVN 이외의 개정 속성 변경 : 로그는 금지됩니다.
SVN 명령 후. 이 특정 문제를 해결하려면 추가하십시오
if [ "$ACTION" = "M" -a "$PROPNAME" = "svn:author" ]; then exit 0; fi
위의 Redglyph 용액에서.