2009-10-08 7 views
2

저는 버전 관리에 아주 익숙하며, 제가 작업하고있는 프로젝트가 svn에서 호스팅되기 때문에 svn을 사용하고 있습니다.
내 로컬 작업 사본에 임시 파일을 추가하고 svn delete를 사용하지 않고 삭제했습니다 (인식하지 못함).svn : 저장소에있는 파일을 삭제하십시오.

 
svn: Error processing command 'committed' in '.' 
svn: Error replacing text-base of 'tmp_file' 
svn: Can't change perms of file 'tmp_file': No such file or directory 
run svn cleanup 

svn의 정리 :
지금 그 파일은 내 사설에 내 최종 변경 사항을 적용했을 때, 그래서 그 파일이 저장소에 기록되었고이 후 커밋 오류를 성공했지만보고 커밋 버전 제어에서 여전히 또한 유사한 결과를 제공합니다.
저장소에있는 내 지사의 tmp_file을 원하지 않습니다.

누구나이 방법을 제안 할 수 있습니까?

미리 감사드립니다.

답변

4

Look up svn revert.

"svn의 도움말 되돌리기"

나는 여기에이 시스템에서 편리 svn을 만의 라인을 따라 뭔가를하려고하지 않습니다

이 기본적으로 취소
svn revert tmp_file 
svn delete tmp_file 
svn update 
svn commit -m "Correctly deleted the temp file" 

파일 시스템 레벨이 수행 한 삭제의 , svn delete는 작업 복사본이 최신인지 확인한 다음 변경 사항을 커밋합니다.

편집 : 그래, "svn --version"을 실행하면 버전이 1.4임을 알 수 있습니다. 어떤 것?

그렇다면 작업 복사본이 손상되어 수정할 수 없습니다. Bug Report here

tmp_file을 제외하고 작업 복사본에 커밋해야 할 변경 사항이없는 경우 새 작업 복사본을 다른 디렉토리로 체크 아웃하고 손상된 파일을 삭제하면됩니다. "svn status"를 실행하여 다른 변경 사항이 없음을 확인할 수 있습니다.

그런 다음 새 작업 복사본에서 위의 "svn delete"명령을 수행하여 파일을 올바르게 삭제하십시오.

+0

답장을 보내 주셔서 감사합니다.하지만 작업 사본이 잠겨 있고 "svn revert가 svn cleanup을 실행하라는 메시지가 하나 더 있습니다. 동일한 오류 메시지로 종료됩니다. – sud03r

+0

@Neeraj에 아직영향을받은 파일의 상위 디렉토리에서 정리 명령을 실행하려고했는지 알고 싶습니다. 또한 삭제하고 난 후에도 문제없이 항상 커밋합니다. 내가 설명한 시나리오를 오해하지 않는 한 - svn delete는 주어진 작업 공간에서 delete + svn commit과 같은 방식으로 작동해야합니다. 어떤 SVN 버전을 사용합니까? –

+0

@ Critical. Neeraj가 파일을 생성하고 svn add를 수행하며 파일 시스템을 삭제 한 다음 Subversion의 이전 버전에서, 이것은 돌이킬 수없는 공동 작업 복사를 중단시킵니다. Neeraj에 대한 보조 노트로서, 당신의 Subversion 클라이언트를 업데이트 할 것입니다. 모든 1.x 클라이언트는 이전 버전의 Subversion 서버 버전과 역 호환됩니다. –

2

최근의 svn에서 수정되었을 수 있습니다. 나는 이런 식으로 물건을 재현하려고했다 :

$ svnadmin create test_repos 
$ svn co file:///.../test_repos test_co 
Checked out revision 0. 
$ cd test_co 
$ touch tmp_file 
$ svn add tmp_file 
A   tmp_file 
$ rm tmp_file 
$ svn ci -m "" 
svn: '/.../tmp_file' is scheduled for addition, but is missing 

즉, 내 커밋은 전혀 성공하지 못했다. 1.6.2 (r37639)를 사용하고 있습니다.

관련 문제