development

SVN 사용자 이름 변경

big-blog 2020. 9. 23. 07:52
반응형

SVN 사용자 이름 변경


특정 개정판의 사용자 이름을 변경하는 방법에 대한 많은 예를 찾았습니다.

그러나 내가 필요한 것은 이것이다. 나는 직장 동료의 인증 자격 증명으로 체크 아웃을했고 향후 커밋을 위해 그것을 내 자격 증명으로 변경해야한다.

이미 수행 된 많은 변경 사항으로 인해 내 자격 증명으로 체크 아웃 할 수 없습니다.

이것에 익숙한 사람?


다음으로 사용자를 변경할 수 있습니다.

  • Subversion 1.6 이하 :

    svn switch --relocate protocol://currentUser@server/path protocol://newUser@server/path
    
  • Subversion 1.7 이상 :

    svn relocate protocol://currentUser@server/path protocol://newUser@server/path
    

무엇인지 알아 보려면 다음을 protocol://currentUser@server/path실행하십시오.

svn info

작업 사본에서.


가장 쉬운 방법은 다음 체크 아웃이나 커밋에서 --username 옵션을 사용하는 것입니다. 예를 들면 :

svn commit --username newUser

또는

svn co --username newUser

그런 다음 캐시되고 향후 명령의 기본 사용자 이름으로 사용됩니다.

참조 : Subversion에서 로그인 이름이 아닌 다른 사용자가 될 수 있습니까?


나는 똑같은 문제가 있었고 SVN 클라이언트는 사용자 인증 데이터어디에 저장합니까? 에서 해결책을 찾았습니다 . :

  1. cd~/.subversion/auth/.
  2. 마십시오 fgrep -l <yourworkmatesusernameORtheserverurl> */*.
  3. 찾은 파일을 삭제하십시오.
  4. 저장소에서 다음 작업은 사용자 이름 / 암호 정보를 다시 묻습니다.

(Windows의 경우 단계는 유사하며 auth디렉토리는에 %APPDATA%\Subversion\있습니다.)

이것은 사용자 이름이 서버 로그인의 일부인 SVN 액세스 체계에서만 작동하므로 .NET을 사용하여 액세스하는 저장소에는 사용되지 않습니다 file://.


실행할 수있는 명령 :

svn up --username newUsername

완벽하게 작동합니다.)

추신 : 힌트 : "--username"옵션은 업데이트뿐만 아니라 모든 "svn"명령에서 실행할 수 있습니다.


프로토콜이 http이고 Subversion 1.7을 사용하는 경우, 모든 명령에서 global --username 옵션을 사용하여 언제든지 사용자를 전환 할 수 있습니다.

Ingo의 방법이 저에게 효과가 없었을 때 이것이 효과가 있음을 발견했습니다.


로 이동하십시오 Tortoise SVN --> Settings --> Saved Data.

인증 데이터를 지우는 옵션이 있으며 지우기 버튼을 클릭하면 사용자 ID / 비밀번호를 지우려는 연결을 선택할 수 있습니다.

이 작업을 수행 한 후 모든 체크 아웃 또는 업데이트 활동은 사용자 ID와 암호를 다시 묻습니다.


또한 잘못된 자격 증명을 사용하여 커밋했다는 사실을 너무 늦게 깨달은 사람들의 경우 해결책은 해당 개정판의 svn 작성자를 변경하는 것입니다. 이 질문을 참조하십시오.

기본적으로 구문은 다음과 같습니다.

svn propset --revprop -r (revision_number) svn:author (new username)

Win10의 경우이 폴더를 제거하고 IDE를 닫거나 열어야합니다.

C : \ Users \ User \ AppData \ Roaming \ Subversion \ auth

, 또한 내 프로젝트에서 ".subversion"폴더가없고 ".svn"만


직장 동료의 지점과 동일한 트렁크에서 자신의 지점을 만들고 (자신의 자격 증명을 사용하여) 직장 동료의 지점에서 작업 복사본으로 병합 한 다음 지점에서 병합 할 수 있다고 생각합니다. 모든 향후 커밋은 사용자가 보낸 것으로 표시되어야합니다.


동료에게 패치를 만들도록 요청할 수 있습니다. 패치는 모든 변경 사항을 단일 파일로 축소하여 자신의 체크 아웃에 적용 할 수 있습니다. 이렇게하면 모든 파일이 적절하게 업데이트되고 변경 사항을 그의 측에서 되돌리고 체크인 할 수 있습니다.


Ingo Kegel의 솔루션을 기반으로 모든 하위 폴더의 사용자 이름을 변경하는 "작은"bash 스크립트를 만들었습니다. 기억해:

  1. <NEW_USERNAME>새 사용자 이름으로 변경하십시오 .
  2. <OLD_USERNAME>현재 사용자 이름으로 변경 합니다 (현재 사용자 이름을 설정하지 않은 경우 간단히 제거 <OLD_USERNAME>@).

아래 코드에서 svn 명령은 인쇄 만됩니다 (실행되지 않음). svn 명령을 실행하려면 그 echo앞에있는 공백과 공백을 제거하십시오 (바로 위 popd).

for d in */ ; \
do echo $d ; pushd $d ; \
url=$(svn info | grep "URL: svn") ; \
url=$(echo ${url#"URL: "}) ; \
newurl=$(echo $url | sed "s/svn+ssh:\/\/<OLD_USERNAME>@/svn+ssh:\/\/<NEW_USERNAME>@/") ; \
echo "Old url: "$url ; echo "New url: "$newurl ; \
echo svn relocate $url $newurl ; \
popd ; \
done

도움이 되었기를 바랍니다.

참고 URL : https://stackoverflow.com/questions/7671662/svn-change-username

반응형