SVN 405 방법 허용되지 않음


122

실수로 SVN에서 폴더를 삭제하고 즉시 다시 추가했습니다. 이 문제가 발생하여 솔루션이 내 로컬 사본과 서버 사본에서 폴더를 완전히 제거했습니다. 다른 파일이나 폴더에서 문제없이 업데이트 및 커밋을 수행 할 수 있지만 동일한 이름으로 폴더를 만들고 추가하고 커밋하려고하면 다음 오류가 발생합니다.

svn : 서버에서 '/ svn / www /! svn / wrk / 9de0d765-2203-456c-af16-58e792ec7ac0 / trunk / htdocs / solutions / medical'에 대한 MKCOL 요청에 대한 응답으로 예기치 않은 반환 값 (405 메서드 허용되지 않음)을 보냈습니다.

수많은 정리, 커밋, 업데이트 등을 실행했습니다. 아무 것도 문제를 해결할 수 없습니다. 아이디어?

참고로, 최상위 폴더의 이름을 바꿀 수있는 옵션이 없습니다.


나는 그것을 제대로 무시할 수 있도록 하위 디렉토리를 제거하려고 시도하는 동안 동일한 작업을 시도했습니다. 어떻게 든 저절로 해결되었고 이것을 허용하기 위해 어떤 요소의 신비한 조합이 일치하는지 실제로 알지 못하기 때문에 내 질문을 버렸습니다. 나의 새로운 것은 : 왜 우리 모두가 사용하지 git않는가?
— icedwater

답변:


170

내 생각 엔 추가하려는 폴더가 이미 SVN에 존재한다는 것 입니다. 다른 폴더로 파일을 체크 아웃하고 트렁크에 이미 필요한 폴더가 있는지 확인할 수 있습니다.


1
다른 체크 아웃 버전에서 이것을 확인했습니다. 내 작업 복사본이 업데이트되지 않는 이유를 알 수 없습니다.
— roadsunknown

1
여기에서도 마찬가지 였지만 별도의 폴더에서 폴더를 확인해야했습니다 (또는 오히려 이름을 "foo"및 svn up'd로 변경하고 성공적인 커밋에도 불구하고 "deleted"폴더를 포함하여 다시 가져 왔습니다. 그것을 삭제).
— 칼레

1
@Shaji : 나는 당신의 사건을 이해합니다. 하지만이 오류로 인해 어떻게 커밋 할 수 있습니까? 아니면 어쨌든 할 일이 있습니다. 감사.
— Huy Tower

1
폴더에서 SVN 업데이트를 수행 한 다음 커밋을 다시 시도합니다.
— Alex R

이것은 성가신 오류입니다. Github에서 새 저장소를 체크 아웃하고 새 폴더를 커밋했습니다. 항상 동일한 오류가 표시됩니다. 솔루션을 시도했지만 작동하지 않습니다.
— emeraldhieu

56

내가 그것을 고치는 가장 빠른 방법은 영향을받는 폴더를 복제하고 다른 이름으로 커밋하는 것이 었습니다. 그런 다음 svn mv duplicateFolder originalFolder. 아주 쉽습니다.

따라서 folder1을 가져와 folder1Copy :

svn delete folder1
svn add folder1Copy

커밋 및 업데이트 :

svn mv folder1Copy/ folder1/

다시 커밋하면 수정됩니다.


6
이것은 나를 위해 훌륭하게 작동했으며 두 번째 작업 사본을 다루는 것보다 훨씬 간단합니다.
— 저스틴

바라건대 commit & update, 병렬로 두 가지를 시도하는 Unix의 리터럴 명령 줄이 아닙니다.
— LarsH

1
Sunnyvale에 오시면 어떻게 든 나를 찾으면 커피를 사줄 것입니다.
— Michael Voznesensky 2014

10

내 "사라진"폴더는 libraries/fof입니다.

삭제 한 다음 업데이트를 실행하면 표시되지 않습니다.

cd libaries
svn up

(아무 반응이 없습니다).

그러나 실제 이름으로 업데이트 :

svn update fof

트릭을했고 업데이트되었습니다. 그래서 나는 (수동으로 타르 보관 된) 작업 사본을 폭발시켜 다시 커밋했습니다. 가장 쉬운 솔루션.


이것이 가장 쉽다는 것에 동의하십시오. "svn up"대신 "svn up [folder]"를 수행하십시오.
— Dimitris

이 솔루션이 저에게 효과적이었습니다. 감사합니다.
— Miguel Rentes 2015-08-13

4

내 저장소에서 이것을 수정했습니다. Windows에서 TortoiseSVN을 사용하고 있으므로 이것이 명령 줄에서 어떤 명령으로 변환되는지 정확히 모르겠지만 다음은 제가 한 작업입니다.

문제가있는 폴더는이며 lib추가 예정입니다.

  • 먼저 추가를 취소하여 SVN이 더 이상주의를 기울이지 않았습니다.
  • 그런 다음 libsWindows 상황에 맞는 메뉴를 사용하여 이름을 바꾸고 ( 중요하지 않은으로) 추가하고 성공적으로 커밋했습니다.
  • 마지막으로 libTortoiseSVN의 컨텍스트 메뉴 를 사용하여 이름을 바꾸고 (아마도 중요 할 것입니다) 다시 커밋했습니다.

3

나도 방금이 문제를 만났고 이렇게 해결했다. 그래서 여기에 녹음했고 다른 사람들에게도 유용했으면합니다.

대본:

  1. 코드를 커밋하기 전에 수정 : 100
  2. (다른 사람이 코드를 커밋합니다 ... 개정판이 199로 증가)
  3. 나는 ( "svn up"을 실행하는 것을 잊었다,) 코드를 커밋하고, 이제 내 개정판 : 200
  4. 나는 "svn up"을 실행한다.

오류가 발생했습니다.

해결책:

  1. $ mv current_copy copy_back # 현재 코드 사본의 이름 변경
  2. $ svn checkout current_copy # 다시 확인
  3. $ cp copy_back / current_copy # 수정 사항 복원

3

비슷한 문제가있었습니다. 결국 궤도에서 핵을 획득하고 그 과정에서 SVN 기록을 잃었습니다. 하지만 적어도 나는 그 망할 실수를 없애버 렸습니다.

이것은 아마도 실행하기에 차선의 명령 시퀀스 일 수 있지만 실제로 작업을 수행하기 위해 수행 한 명령 시퀀스를 상당히 밀접하게 따라야합니다.

cp -rp target ~/other/location/target-20111108
svn rm target --force
cp -rp ~/other/location/target-20111108 target-other-name
cd target-other-name
find . -name .svn -print | xargs rm -rf
cd ..
svn add target-other-name
svn ci -m "Re-re-re-re-re-re-re-re-re-re import target"
svn mv target-other-name target
svn ci -m "Re-re-re-re-re-re-re-re-re-re import target"

확신 할 수있는 유일한 방법입니다.
— TomDestry

1

code.google.comSubversion 저장소를 호스팅 하는 데 사용 하는 경우 .

아래 내용을 알고 계시죠?

If you plan to make changes, use this command to check out the code as yourself using HTTPS:

# Project members authenticate over HTTPS to allow committing changes.
svn checkout https://.../svn/trunk/ user-...

When prompted, enter your generated googlecode.com password.
Use this command to anonymously check out the latest project source code:

# Non-members may check out a read-only working copy anonymously over HTTP.
svn checkout http://.../svn/trunk/ ...-read-only

정확히 언급 한 오류는 Non-members may check out a read-only working copy anonymously over HTTP상태를 사용하고 있습니다. 따라서 지금까지 커밋하거나 할 수 없습니다.

Project members authenticate over HTTPS to allow committing changes물건을 사용해야합니다 .

이제 괜찮을 것입니다.


0

동일한 문제가 발생하여 다음 방법으로 해결할 수있었습니다.

  1. 폴더를 다른 위치로 복사하십시오.
  2. 복사 된 폴더에서 .svn 삭제
  3. 원본 폴더를 마우스 오른쪽 버튼으로 클릭하고 'SVN Checkout'을 선택하십시오.
  4. (3)을 찾을 수 없다면 귀하의 경우는 제 경우와 다릅니다.
  5. REPO-BROWSER의 디렉토리가 올바른지 확인하십시오. 제 경우에는 이것이 원인이었습니다.
  6. 체크 아웃
  7. 복사 된 폴더의 파일을 원래 디렉토리로 되돌립니다.
  8. 범하다.

0

이것은 svn에 넣으려는 폴더 / 파일이 이미 존재한다는 것을 의미합니다. 내 조언은 무엇이든하기 전에 폴더 / 파일을 마우스 오른쪽 버튼으로 클릭하고 repo-browser를 클릭한다는 것입니다. 이렇게하면 이미 svn에있는 모든 파일 / 하위 폴더 등을 볼 수 있습니다. 필요한 파일 / 폴더가 svn에 없으면 추가하려는 파일을 삭제 (백업 후) 한 다음 업데이트를 실행하면됩니다.


0

현재 추가 된 디렉토리가 이미 저장소에 커밋되었습니다. 따라서 저장소에서 디렉토리를 삭제하고 동일한 디렉토리를 다시 커밋하십시오.


0

URL 주소를 "/"로 끝나는 새 주소로 대체했기 때문에이 오류가 발생했습니다. REPOSITORY 테이블의 .svn 폴더에 있는 wc.db 데이터베이스의 레코드를 의미 합니다.

기호 "/"를 제거하면 오류가 사라졌습니다.

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