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.