SVN : 폴더가 이미 버전 제어를 받고 있지만 커밋하지 않습니까?


111
mark@mark-ubuntu:~/myproject$ svn stat
?       runserver.sh
?       media/images/icons
?       apps/autocomplete
mark@mark-ubuntu:~/myproject$ svn add apps/autocomplete
svn: warning: 'apps/autocomplete' is already under version control

svn stat버전 관리하에 있지 않다고해서 추가하려고하는데 그랬다고 알려줍니다. 를 수행하면 svn ci커밋되지 않고 온라인으로 저장소를 탐색하려고 할 때 표시되지 않습니다.

커밋하려면 어떻게해야합니까?


3
"autocomplete"폴더에 손상된 ".svn"하위 디렉토리가 있습니까? 또한 청소 했습니까? :)
bzlm

1
svn 정리, 어둠 속에서 찌르기를 시도해 보셨습니까?
shaunhusain 22:08에

체크인 디렉토리를 프로젝트의 다른 폴더에 복사했을 때이 문제가 발생했습니다. 이전 .svn 삭제가 작동합니다!
paulrehkugler 2013 년

강제로 파일을 추가했습니다 : svn add --force /path/to/file, 또는 디렉토리를 재귀 적으로 추가하려면 : svn add --depth infinity --force /path/to/directory.
조커

답변:


162

문제가있는 폴더를 일부 백업 디렉토리에 복사하고 SVN 작업 디렉토리에서 제거하십시오. .svn복사 된 폴더에서 모든 숨겨진 디렉토리 를 삭제하는 것을 잊지 마십시오 .

이제 프로젝트를 업데이트하고 정리하고 남은 것을 커밋하십시오. 이제 폴더를 작업 디렉토리로 다시 이동하고 추가하고 커밋하십시오. 대부분의 경우이 해결 방법이 작동하지만 기본적으로 SVN이 혼동 된 것 같습니다.

업데이트 : @Mark의 인용 주석 :

폴더를 이동할 필요가 없었고 폴더를 삭제 한 .svn다음 svn-adding이 작동했습니다.


52
폴더를 이동할 필요가 없었고 폴더를 삭제 한 .svn다음 svn-adding이 작동했습니다.
mpen

6
+1 for my day ;-) Mark가 말했듯이 문제가있는 폴더 내의 .svn 디렉토리를 제거하는 것으로 충분했습니다.
rturrado

23
SVN을 완전한 BS로 식별 해 주셔서 감사합니다.
Steve K

1
이제 최상위 폴더에 .svn 만
있으므로이

이미 저지른 경우 목록에서 상위 폴더 (응용 프로그램 / 자동 완성) 취소
khaled_webdev

20

svn 디렉토리를 포함하는 디렉토리 트리를 추가 한 후 비슷한 모양의 문제가 발생했습니다 (소스 환경에서 svn : external이기 때문에) : svn status가 "?"라고 말했지만 추가하려고 할 때 "이미 이미 버전 관리 ".

버전이 지정된 다른 디렉토리가 없었기 때문에

find . -mindepth 2 -name '.svn' -exec rm -rf '{}' \;

잘못된 .svn 디렉토리를 제거합니다. 이렇게 한 후 새 디렉토리를 추가 할 수있었습니다.

참고 :

  • 다른 버전의 디렉토리가 포함 된 경우 찾기 표현식을보다 구체적으로 변경해야합니다.
  • 확실하지 않은 경우 먼저 "-exec ..."부분을 생략하여 무엇이 삭제되는지 확인하십시오.

이 답변은 저에게 효과적이지만 처음 사용했을 때 잘못된 폴더에 있었고 일이 엉망이되었습니다. 사람들에게 "두 번 측정하고 한 번 자르기"를 상기시키는 좋은 장소 인 것 같습니다. 즉, 이것을 실행하기 전에 세부 사항을 다시 확인하십시오.
BishopZ 2013-08-30

... -exec echo {} \;-exec 스위치가 잘 작동하도록 '확실하지 않은 경우'를 권장합니다 .
FlipMcF

또한 -type d찾기에 추가하는 것이 좋습니다 . 당신 rm -rf이 너무 멀리 갈 때까지 나를 까다롭게 부르십시오 . 내 nitpicks 외에-나는 이것이 정답이라고 생각합니다.
FlipMcF

15

@ gauss256의 대답 에 대한 변형 , 삭제 .svn가 나를 위해 일했습니다.

rm -rf troublesome_folder/.svn
svn add troublesome_folder
svn commit

Gauss의 솔루션 이전에 @ jwir3의 접근 방식을 시도했지만 기쁨이 없었습니다.

svn cleanup
svn cleanup *
svn cleanup troublesome_folder
svn add --force troublesome_folder
svn commit

14

(1) 방금 나에게 일어난 일이고, 어떻게 된 일인지 흥미 롭다고 생각했습니다 . 기본적으로 폴더를 새 위치에 복사하고 수정하여 숨겨진 모든 .svn 디렉토리를 가져 오는 것을 잊었습니다. 그것이 어떻게 발생하는지 알게되면 미래에 피하는 것이 더 쉽습니다.

(2) .svn 디렉토리를 제거하는 것이 해결책이지만 디렉토리 트리 아래까지 반복적으로 수행해야합니다. 이를 수행하는 가장 쉬운 방법은 다음과 같습니다.

find troublesome_folder -name .svn -exec rm -rf {} \;

3

svn 정리를 시도해 보셨습니까?


2
나도이 문제에 부딪혔다. 그런 다음 시도했지만 svn cleanup도움이되지 않았습니다.
imacake

3

'apps / autocomplete / .svn'디렉토리를 확인하십시오. 안전한 곳으로 옮기고 (작동하지 않아 복원해야하는 경우) 문제가 해결되는지 확인합니다.


0

SVN Client JavaHL (JNI) 1.8.13 및 Tortoise와 함께 Eclipse (Luna)를 설치 한 경우 해결책을 찾았습니다 .

Eclipse 열기 : 먼저 프로젝트 / 메이븐 모듈을 버전 제어에 추가해보십시오 (프로젝트-> 컨텍스트 메뉴-> 팀-> 버전 제어에 추가).

다음 Eclipse 오류 메시지가 표시됩니다.

org.apache.subversion.javahl.ClientException : 항목이 이미 있습니다. svn : 'PathToYouProject'가 이미 버전 제어를 받고 있습니다.

그런 다음 탐색기에서 작업 공간 디렉토리를 열어야합니다. 프로젝트를 선택하고 Tortoise를 통해 해결합니다 (프로젝트-> 컨텍스트 메뉴-> TortoiseSVN-> 해결).

다음 메시지 대화 상자가 표시됩니다. " 파일 목록이 비어 있습니다. "

취소를 누르고 Eclipse에서 프로젝트를 새로 고칩니다. 프로젝트는 다시 버전 제어를 받아야합니다.

안타깝게도 하나의 프로젝트를 동시에 해결하는 것은 불가능합니다 ... 아무것도 삭제할 필요는 없지만 프로젝트의 크기에 따라 약간 힘들 수 있습니다.


0

나를 위해 svn 업데이트를 수행하고 svn 커밋이 작동했습니다. 추가에 실패한 폴더에 .svn 폴더가 없습니다.

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