2013-03-28 1 views
2

https를 통해 인증하는 Subversion 저장소에 연결하려면 git-svn을 사용하고 있습니다. 리눅스에서 git 명령 행 클라이언트를 사용하고 있습니다 (Ubuntu 12.04). Subversion 서버와의 상호 작용이 필요한 명령을 수행 할 때 예상대로 svn 암호를 입력해야합니다. 그러나 명령에 svn 서버와의 상호 작용이 여러 번 필요하면 (예 : 여러 로컬 커밋을 사용하는 git svn dcommit) 암호를 여러 번 입력해야합니다.하나의 git-svn 명령이 여러 svn 작업에 대한 암호를 캐시하지 않습니다.

또 다른 워크 스테이션에서 커밋 시리즈 전체에 대해 한 번 암호를 묻는 예상 동작을 제공하는 비슷한 설정이 있습니다.

비슷한 질문이 herehere이지만 두 경우 모두 OP는 svn 자격 증명을 git-svn 명령간에 캐시하고 싶습니다. 암호를 저장하도록 구성된 전복 프로그램이 없으며 그렇게 할 수 있으면 그대로 유지하려고합니다.

내 자식 - svn을 버전 1.7.9.5 (SVN 1.6.17) 당신은 subversion 디렉토리에 저장된 자격 증명이 필요

답변

0

입니다. 단지 저장 svn을 가지고 본래의 솔루션은 임시 디렉토리에 SVN 저장소의 간단한 체크 아웃을 할 것이다 당신의 usernamepassword : 당신이 당신의 자격 증명하고 저장하려면이 방법 svn에서

svn co http://url-of-your-svn/repos/repos temp-repos-directory 

가 묻습니다 subversion config 디렉토리 (linux의 ~/.subversion/aut/)에 저장됩니다.

또 다른 해결책은 자격 증명을 저장하기 위해 직접 svn 물어 것 :

svn update --username 'username' --password 'password' 
+0

감사합니다. SVN 캐시를 일반적으로 내 자격 증명 캐시 싶지 않습니다. 내 설정 중 하나가 예상대로 작동합니다. 일련의 명령에 한 번만 암호를 입력하면됩니다. 전 자식 - svn 자격 증명 캐시 작동 방식을 이해하려고 노력하고 있지만 일반적으로 많은 설명서를 찾을 수 없습니다. 내가 문제를 해결할 수 없다면 당신의 해결책으로 넘어갈 수 있습니다. –

1

문제는 git svn 명령은 일반 서브 인터페이스의 래퍼를 사용하여 여러 서브 버전 작업을 수행 할 것입니다; 힘내 기는 당신의 Subversion 자격증 명을 모른다.

나는 중대하다 어느 것도 진행에 대한 몇 가지 다른 옵션을 볼 수 있습니다

  • 은 Subversion의 자격 증명 저장소를 사용합니다. 당신은 이것에 대해 알고 당신이 그것을하고 싶지 않다고 말했기 때문에 그것은 비 초보자입니다.

  • Git이 수행하는 Subversion 작업마다 암호를 입력하기 만하면됩니다. 현재 솔루션; 그것이 좋은 것이라면 당신은 그 질문을하지 않을 것입니다.

  • 패치 git svn. 힘내 코드는 오픈 소스이며, git svn 명령은 Perl로 작성되어 있으므로 시스템에서 편집하고 다시 컴파일하지 않고 새 버전을 사용할 수 있습니다. 거친 디자인 :

    • Subversion 저장소와 상호 작용 할 때마다이 첫 번째 시도는 대화 형 인증없이 수행하기 (기본 svn 명령 즉 --non-interactive 인수).

    • 잘 작동한다면 계속 진행하십시오. 실패하면 인증이 없어서 실패했다고 가정하고 사용자에게 사용자 이름과 암호를 묻습니다.

    • 나중에 svn 명령의 경우 인증이 필요하지 않으면 이와 같이 수행하십시오. 그렇지 않으면 저장된 사용자 이름과 암호를 명시 적으로 지정하십시오 (예 : svn 명령에 대한 --username--password 인수). 솔로가는

하지만, 지금까지 사소한에서입니다. Git 소스 코드에서 열심히 일하는 것을 특히 좋아하지 않는 한, 또는 이것을 위해 누군가에게 돈을 지불하기를 원한다면, 당신이 살 필요가있는 행동 인 것처럼 보입니다.

+0

"힘내 기지는 당신의 서브 버전 자격증 명을 모르거나 신경 쓰지 않습니다." 이것은 내 자격 증명을 일시적으로 캐싱하는 Subversion 클라이언트 자체의 방향으로 나를 가리 킵니다. git-svn 래퍼가 svn 자격 증명을 처리하고 있는지 또는 해당 aspect가 svn 클라이언트로 전달되었는지 여부는 확실하지 않았습니다. 나는 확실히 옵션 3을 추구하기를 원하지 않으며 나는 필요하다고 생각하지 않는다. 정상적인 설정은 암호를 한 번만 입력하면됩니다. 나에게 왜 설정이 다른지, 예상되는 동작을 처음 보지 못했을 때 나는 옵션 1을 사용하여 즐거운 시간을 보낼 수있었습니다. –

+0

@BeansGalore : 아는 한, Subversion에 자격 증명을 임시로 캐시 할 방법이 없습니다. Subversion 문서에서 알 수 있듯이 캐싱은 전부 또는 일부가 아니며 일정 기간 후에 캐쉬를 삭제한다고 말할 수는 없습니다. –

+0

그게 내가 설명서에서 발견 한 것 같습니다. 그놈 키링 (gnome-keyring)이나 다른 유사한 프로세스가 뭔가를 캐싱하는지 궁금합니다. 나는 일반적으로 시스템에 어떤 종류의 자격 증명 캐싱도하지 않지만 내 지식이 없으면 기본적으로 어떤 것을 구성 할 수 있습니다. –