SourceTree 3.0.6으로 업데이트하면 리모트에서의 조작을 할 수 없게 되었기 때문에 해결한 망비록

2941 단어 SourceTree

서문



당연히 이 페이지를 보고 있는 프로그래머는 git를 사용해 소스 코드 관리를 하고 있다고 생각합니다만,
@yosida001 git은 git에서도 SourceTree라는 UI에서 git을 조작 할 수있는 응용 프로그램을 사용합니다.

「SourceTree는 편리해! 사용하면 좋다!」같은 것을 써도 됩니다만, 번거롭기 때문에 자세한 설명은, 공식 사이트를 보거나 해설 사이트를 읽어 주세요.

문제 발생



글쎄, 그런 날 평소와 같이 원격으로 가져 오려고하면 이러한 오류가 발생했습니다.

「그러고 보니 직전에, 아무것도 생각하지 않고 SourceTree를 업데이트했구나・・・・」
그렇게 생각하면서 오류를 해결하기로합시다.

Askpass.exe는 무엇입니까?



분명히 오류를 보는 한C:\Users\{User}\AppData\Local\SourceTree\app-3.0.6\tools\Askpass.exe나쁜 짓을하는 것은 실수가 없습니다.
무슨 악을 하고 있는지는 아무래도 깨져서 읽을 수 없지만...
그 후의 에러를 읽는 한은, SSH 액세스를 할 수 없게 되어 있는 것 같습니다.

그런데, 이 Askpass.exe라고 하는 어플리케이션입니다만, 구체적으로는 SourceTree 안의, SSH 접속이나 Git 접속에 이용하는 패스워드를 관리하는 어플리케이션입니다.
비밀번호를 읽지 못했습니까?

원인 발견



구체적으로 응용 프로그램의 설치 장소까지 오류 문장에 쓰여 있으므로 직접 exe 파일을 보러 갑시다.

덧붙여 AppData 디렉토리는 숨겨진 디렉토리이므로, 발견되지 않으면 어떻게든 보이도록 해 두어 주세요. 방법은 구그하면 곧 나옵니다.

다음은이 오류가 발생했을 때 실제 C:\Users\{User}\AppData\Local\SourceTree\app-3.0.6\tools\ 디렉토리 내용입니다.


원래 Askpass.exe가 없는 것으로 판명됩니다.
그럼 에러도 나오는 것입니다.
이 근처에서 SourceTree를 모두 제거하고, 다시 한번부터 설치하면 해결할 것 같은 예감을 생각합니다만, 현재의 설정 데이터가 사라져 버리는 것이 아쉽기 때문에 노력합니다.

Askpass.exe 조달



그런데이 오류가 발생하기 전에 SouceTree를 업데이트했습니다.
app-3.0.6 이외에도 버전을 기록한 디렉토리를 가지고 있는 것입니다.
그 중에서도 가장 최근의 녀석을 열어 봅시다. 수중 환경에서는 app-2.5.5입니다.
내부를 살펴보면 Askpass.exe가 있습니다.
복사하여 가져 가자.

그리고 SourceTree를 다시 시작한 후 fetch

···
�n���h������Ă��Ȃ���O: System.IO.FileNotFoundException: �t�@�C���܂��̓A�Z���u�� 'SourceTreeShared, Version=1.6.14.0, Culture=neutral, PublicKeyToken=null'�A�܂��͂��̈ˑ��֌W�� 1 �‚��ǂݍ��߂܂���ł����B�w�肳�ꂽ�t�@�C�������‚���܂���B
   �ꏊ Askpass.App.Main()
Error reading SSH_ASKPASS output for prompt: git@{IP_Address}'s password: 
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

에서     야!
Askpass를 움직이는 라이브러리가 들어 있지 않은 것 같습니다. 파일을 비교해 부족한 분을 모두 넣어 버립니다.

해결



구체적으로
  • Askpass.exe
  • Askpass.UI.Wpf.dll
  • SourceTreeShared.dll

  • 세 가지를 복사하여 넣으면 정상적으로 움직입니다.

    여러분도 좋은 SourceTree라이프를!

    좋은 웹페이지 즐겨찾기