Subversion 오류 : MKCOL에 대한 응답으로 (405 Method Not Allowed)


65

새 디렉토리 추가를 커밋하려고하는 동안 다음 오류가 발생합니다.

svn: Commit failed (details follow):
svn: Server sent unexpected return value (405 Method Not Allowed) in response to MKCOL request for '....

나는 전에이 오류를 본 적이 없다. 이 문제를 어떻게 해결할 수 있습니까?

해결책
나는 문제를 해결했다.

  • 문제를 일으키는 폴더의 부모 디렉토리를 삭제하십시오.
  • SVN 업데이트를 수행하십시오.
  • 새 폴더와 이름이 같은 폴더가 이미 저장소에 있습니다.
  • 이 폴더를 삭제하십시오.
  • SVN 커밋.
  • 새 폴더, 복사 일정 및 SVN 커밋을 복사하십시오.

클라이언트와 서버간에 웹 캐시 서비스를 실행하는 경우 구성, 전송 (HTTP / HTTPS), 서버 오류 로그의 메시지 (가장 중요한)와 같은 정보가 부족합니다.
Juliano

7
질문에 추가하지 않고 답변으로 솔루션을 추가하십시오.
Sam Cogan

3
나는 svn 오류를주는 것을 싫어하고 중지합니다. 항상 껴안는 아이처럼 보입니다. 나는 커밋하고 마술처럼 서버를 추가 한 것보다 되돌 렸습니다.

구글 코드 리포지토리는 stackoverflow.com/a/32636072/1406510
nanosoft

답변:


44

이 오류는 일반적으로 추가하려는 폴더 가 리포지토리 에 이미 있음을 나타냅니다. 최근에 업데이트를 수행 했습니까, 아니면 비 재귀 체크 아웃을 시작하셨습니까?

이전 에이 오류가 발생했습니다. 문제가 무엇인지 알려주는 블로그를 찾았습니다. 해결책은 조금 더 복잡했습니다. 작업 사본에서 문제의 디렉토리를 제거하고 (다른 곳에 복사) 재귀 업데이트를 실행 한 다음 두 디렉토리를 수동으로 병합하십시오.

편집 : Opps-질문 본문에 이미 답변했습니다. 그리고 여기에 나는 대답하지 않은 질문에 대한 답을 알고 있다는 것에 흥분했습니다. :)


@Andrew-글쎄, 당신은 질문에 올바르게 대답했습니다 ... @Sergio는 자신의 질문에 대답했을 것입니다.
Josh

8

Google 코드에서 MKACTIVITY와 비슷한 문제가있었습니다. http :를 사용하여 리포지토리를 체크 아웃했지만 체크인에 https :가 필요했기 때문입니다.


대단한 캐치-나는 내 컴퓨터에서 참을성이없는 프로그래머의 분노를 터뜨 리려고했다. :) https로 폴더를 다시 체크 아웃해야합니다. 커밋 화면에 https URL이 표시됩니다.)
Gishu


5

같은 오류가 발생하여 해결했습니다.

  1. SVN 문제가있는 디렉토리 이름을 'foo'로 바꾸십시오.
  2. SVN 커밋
  3. SVN 원하는 이름으로 다시 이름 바꾸기
  4. SVN 커밋

이것이 모든 경우에 작동하는지 확실하지 않지만 부모 디렉토리를 삭제하는 것보다 간단합니다.


그 간단한 솔루션으로 내 문제가 해결되었습니다. 고마워요! :)
consuela

4

svn 저장소가 HTTP를 통한 커밋을 허용합니까? SourceForge와 같은 일부 저장소는 HTTP를 통한 익명 체크 아웃을 허용 하지만 개발자는 svn 및 SSH를 통해 체크인해야합니다.


3

제 경우에는 폴더 내의 파일을 체크인하는 데 문제가있었습니다. 세르지오가 몇 가지 변경 사항을 설명하는 단계를 수행했습니다.

  1. 문제가있는 상위 디렉토리를 복사했습니다.
  2. 복사 한 디렉토리에서 삭제 된 .svn 파일
  3. svn delete / parent_directory
  4. 범하다
  5. repo에 새 디렉토리를 만듭니다
  6. 범하다
  7. 복사 된 디렉토리에서 리포지토리로 하위 디렉토리 이동
  8. 범하다
  9. 개별 파일 복사
  10. 범하다

도전 할 파일이 몇 개있었습니다. 나는 그것들을 저장소에서 제외했지만 새로운 이름으로 다시 만들었습니다.


2

SVN 형식의 디렉토리를 제거한 다음 다시 추가 할 때이 문제가 발생했습니다. 새로 추가 된 디렉토리를 커밋하면 SVN 에서이 오류가 발생했습니다. 추가 된 새 디렉토리에서 SVN실행 하여 문제 를 해결 한 다음 충돌을 수동으로 해결했습니다 .


1

호스팅되는 svn 서비스 인 Unfuddle을 사용하면 OS X 파인더의 파일 복사로 .svn이 짓밟 힐 때이 오류가 반복적으로 나타납니다. 나를 위해 일한 svn incantation :

  • 돌아가다
  • 최신 정보
  • 원격 URL을 사용하여 폴더를 삭제하십시오.
  • 폴더 추가 및 커밋

0

필자의 경우 로컬 (클라이언트) 메타 데이터가 이미 서버에 있다고 가정하고 정리하면 수정하지 않은 새 디렉토리를 추가했습니다. 모든 새 파일과 수정 된 파일을 백업하고 모든 파일 (루트 .svn 폴더 제외)을 삭제하고 업데이트를 실행하여 파일을 복원 한 다음 백업 한 새 파일과 수정 된 파일을 디렉토리에 다시 복사했습니다. 새 파일을 다시 추가하고 성공적으로 커밋했습니다.


0

이클립스에서는 쉽게 고칠 수 있습니다.

팀> 다른 태그 / 분기로 전환

완전 재귀를 선택하고 지정된 깊이로 작업 사본 변경을 선택하십시오.

OK를 누릅니다

폴더 아이콘이 변경됩니다. 마우스 오른쪽 버튼을 클릭하고 (팀>) Mark Resolved.

그게 다야 이제 커밋 할 수 있습니다.


Eclipse는 개발 도구이며 실제로 ServerFault의 초점이 아닙니다.
Andrew B

0

폴더를 백업하십시오.
저장소에서 폴더를 삭제하십시오 (Repo-Browser 사용).
다시 커밋하십시오.

나를 위해 잘 작동합니다.
마커스


0

비슷한 문제가 있었는데 svn 폴더를 업데이트하는 것보다 안전을 위해 디렉토리를 백업했습니다. 그 후 나는 다시 커밋 할 수 있습니다. (그리고 내 백업을 사용하지 않은)


-1

e175002 200에 문제가있었습니다. 그러나 오류 메시지의 경로가 잘못된 서버에 대해 이야기하고 있다고 읽었으므로 내 트렁크의 URL이 좋지 않았습니다 ( http : // localhost : 80 / path / to / my / trunk / ) ... 잠깐만! LOCALHOST ?! ... 그리고 지금은 내 첫 번째 설정에서 내 설정이 내 프로젝트 파일을 로컬로 내 저장소에 보냈기 때문에… repo에는 잘못된 정보가 포함되어 있으므로 해당 잘못된 설정 또는 처음으로 repo를 사용하려는 모든 클라이언트에서 이러한 잘못된 설정을 수정하는 방법을 찾아야합니다.

내 수정은 내 프로젝트의 모든 폴더를 확인하는 것이 었습니다 .... 모든 폴더에는 정보를 저장하는 .svn 폴더가 있고 모든 .svn 폴더에는 "항목"이라는 파일이 있습니다.이 파일에는 서버에 대한 경로가 있습니다. 저장된 모든 항목에서 불량 IP를 올바른 IP로 바꿨습니다. 모든 .svn 폴더에 있습니다. 그리고 더 이상 오류가 없습니다.

도움이 되길 바랍니다. :) 내 게시물을 이해하기 어려운 경우 죄송합니다 ^^ '나는 열심히 노력하고 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.