programing

SVN 커밋 실패 : 디렉터리가 오래되었습니다.

coolbiz 2021. 1. 17. 11:02
반응형

SVN 커밋 실패 : 디렉터리가 오래되었습니다.


매우 간단 해 보이지만 해결하기 어려운 문제가 있습니다. 디렉토리를 삭제 한 후 언급 된 오류가 발생합니다. 나는 갈등을 해결할 해결책을 아직 찾지 못했습니다. 이것이 발생하는 방법입니다.

svn add dir
svn add dir / file1
svn 커밋
svn add dir / file2
svn 커밋
svn delete dir
svn 커밋
-> 커밋 실패  
-> '/ dir'디렉토리가 오래되었습니다.

명백한 솔루션 'svn update'가 작동하지 않습니다. svn 업데이트 후 다음 커밋이 실패합니다.

커밋 실패
디렉토리 '/ dir'이 계속 충돌합니다.

그동안 해결책을 찾았지만 약간 번거 롭습니다.

svn resolve --accept working dir
svn commit-> 여전히 실패
svn 업데이트
svn commit-> 여전히 실패
svn resolve --accept working dir
svn commit-> 문제 없음!

두 가지 질문 :-내가 매우 호기심이 많기 때문에 누구든지이 동작을 설명 할 수 있습니까?이 문제는 훨씬 더 복잡한 상황의 펄 스크립트에서 발생합니다. 누구나 perl 스크립트에서 '실행 가능'하는 간단한 솔루션을 줄 수 있습니까?


a를 만들면 svn update커밋이 작동합니다.


Subversion을 올바르게 이해하면 문제는 다음과 같습니다.

Subversion은 각 파일 및 디렉토리 의 현재 개정을 개별적으로 추적합니다 . 파일의 변경 사항이 커밋 될 때마다 상위 디렉토리의 개정판이 저장소에서 변경되지만 작업 복사본에는 여전히 이전 개정판의 디렉토리가 있습니다.

따라서 파일을 추가 한 후 시나리오에서 repo의 상위 디렉토리에 작업 사본보다 높은 개정이 있습니다. 오래된 버전에서 작업중인 디렉토리를 삭제하려고 할 때.

해결 방법 :

svn update파일을 추가 후 dir을 삭제하기 전에 수행하십시오.

일반적으로 다른 사람의 변경 사항을 가져 오지 않으려면 업데이트를 디렉토리 자체로 제한 할 수 있습니다 svn up --depth empty dir..


업데이트하고 정리 한 다음 커밋하십시오.


업데이트 한 다음 커밋하면됩니다.


svn up dir최종 커밋을 수행하기 전에 시도해 보셨습니까 ?


이 문제를 해결하기 위해 나는 'svn revert'를 사용한 다음 커밋을 다시 수행해야합니다. 그러면 'svn delete'의 내용이 제거되고 다시 커밋됩니다. 이 문제가 디렉토리 이름을 바꾸려고 시도했지만 제대로 작동하기를 바랍니다.


신선한 작업 공간에서 직면 한 비슷한 문제 :

$ svn delete dir/file
D         dir/file
$ svn ci -m "comment1"
Deleting       dir/file
$ svn delete dir/
D         dir
$ svn ci -m "comment2"
Deleting       dir
svn: Commit failed (details follow):
svn: Item 'dir' is out of date

이 문제를 해결하기 위해 소스를 다시 업데이트하고 'URL 삭제'명령을 사용했습니다.

$ svn delete --force https://server/path.../dir
$ svn update

이것은 파일을 커밋하려고 할 때 SVN에서도 동일한 파일이 업데이트 될 때 발생합니다. 그러면 충돌이 발생하므로 변경 사항의 복사본을 가져 와서 파일을 되 돌리면됩니다. 그런 다음 코드를 다시 붙여 넣으십시오. 그러면 문제없이 커밋 할 수 있습니다.


Eclipse에서 문제를 해결하는 쉬운 방법을 알아 냈습니다.

Right click on your project -> Team -> Update to HEAD

그런 다음 커밋에 대해 동일한 방법을 따르십시오.

Right click on your project -> Team -> Commit

참조 URL : https://stackoverflow.com/questions/3298384/svn-commit-failed-directory-out-of-date

반응형