Programming

svn 'out of date'오류를 어떻게 극복합니까?

procodes 2020. 3. 5. 08:02
반응형

svn 'out of date'오류를 어떻게 극복합니까?


Subversion에서 디렉토리 구조를 한 위치에서 다른 위치로 이동하려고 시도했지만 Item '*' is out of date커밋 오류가 발생합니다.

최신 버전을 체크 아웃했습니다 (알 수있는 한). svn st -umv 명령 이외의 차이점은 없습니다.


때로는 Windows에서 TortoiseSVN으로 이것을 얻습니다. 나를위한 해결책은 svn update다운로드하거나 업데이트 할 개정이 없더라도 디렉토리에 대한 것입니다 . 메타 데이터에 무언가를 수행하여 마술처럼 수정합니다.


운 좋게도 모든 명백한 것들과 다른 제안을 시도한 후 Google 검색으로 인해이 링크로 연결되었습니다 (링크가 더 이상 작동하지 않음) -Subversion의 말 : 파일 또는 디렉토리가 최신 정보가 아닙니다

요컨대, 문제는 .svn 디렉토리 ( 해로운 파일이 포함 된 디렉토리 )로 이동 하여 "all-wcprops"파일을 삭제하는 것 입니다.

다른 일이 없으면 나를 위해 일했습니다.


이 문제는 .svn 파일에서 발생한다고 생각합니다. 이전 부모, 새 부모 또는 이전 부모에서 올바르지 않습니다. 나는 당신의 출발점으로 되돌아 가려고 노력할 것입니다. 내보내기를 사용하여 폴더의 깨끗한 사본을 얻으십시오. 클린 사본을 새 위치로 이동하고 추가 및 삭제를 사용하여 이동하십시오. 그것은 SVN 이하는 일을 수동으로 수행하지만 작동 할 수 있습니다.


나는 이것이 나를 위해 작동한다는 것을 발견했다.

svn update
svn resolved <dir>
svn commit

로컬 사본을 업데이트하려고했으나 해당 항목을 되돌리려 고했지만 여전히 '오래된'오류가 발생했습니다. 이것은 어떤 이유로 작동했습니다.

svn update --force /path/to/dir/or/file

방금 여러 폴더에서 동일한 문제가 발생했으며 이것이 커밋 한 것입니다.

1) "팀 동기화"관점에서 폴더를 마우스 오른쪽 단추로 클릭> 재정의 및 업데이트
2) 폴더를 다시 삭제
3) 커밋하고 행복해


감사합니다. 그것은 나를 위해 그것을 해결했습니다. svn update --force / 경로를 파일명 /

로컬 디렉토리의 최근 파일이 동일하면 프롬프트가 표시되지 않습니다. 파일이 다르면 tf, mf 등을 묻는 메시지가 표시됩니다. mf (mine full)를 선택하면 아무것도 덮어 쓰지 않고 완료되면 커밋 할 수 있습니다.

제이 컴퓨 마터


업데이트 버튼을 눌러 문제를 해결할 수 있습니다.


@ Alexander-Klyubin이 제안한 것처럼 저장소에서 이동하십시오. 또한 네트워크를 통해 모든 데이터를 다시 전송할 필요가 없기 때문에 이동해야 할 데이터가 많은 경우 특히 빠릅니다.

svn mv https://username@server/svn/old/ https://username@server/svn/new/

잘 작동합니다


명령을 실행하기 전에를 사용하여 파일 또는 경로를 제거하십시오.

sudo rm -r /path/to/dir/

이후 :

svn up and commit or delete 

더 낮은 개정이 아닌 헤드를 체크 아웃 했습니까? 또한 최신 버전을 사용하도록 업데이트를 수행하셨습니까?

이것에 대한 토론이 있습니다 http://svn.haxx.se/users/archive-2007-01/0170.shtml .


저장소에서 직접 이동을 수행하십시오.


"오래된"메시지가 표시되는 다른 원인이 하나 이상 있습니다. 내 경우에는 "svn propset svn : ignore -F .gitignore"를 실행하여 생성 된 .svn / dir-props 문제가 발생했습니다. 처음으로. .svn / dir-props를 삭제하면 나쁜 생각처럼 보이고 다른 오류가 발생할 수 있으므로 "svn propdel"을 사용하여 잘못된 "svn propset"을 정리하는 것이 가장 좋습니다.

# Normal state, works fine.
> svn commit -m"bump"  
Sending        eac_cpf.xsl
Transmitting file data .
Committed revision 509.

# Set a property, but forget to commit.
> svn propset svn:ignore -F .gitignore .
property 'svn:ignore' set on '.'

# Edit a file. Should have committed before the edit.
> svn commit -m"bump"                   
Sending        .
svn: Commit failed (details follow):
svn: File or directory '.' is out of date; try updating
svn: resource out of date; try updating

# Delete the property.
> svn propdel svn:ignore .              
property 'svn:ignore' deleted from '.'.

# Now the commit works fine.
> svn commit -m"bump"     
Sending        eac_cpf.xsl
Transmitting file data .
Committed revision 510.

github svn 브리지를 사용하는 경우 github의 측면에서 무언가가 변경 되었기 때문일 수 있습니다. 해결책은 간단합니다. 실행하기 만하면 svn switch됩니다. 그러면 스스로를 찾은 다음 업데이트하면 모든 것이 작동합니다. 결제의 루트에서 다음을 실행하십시오.

svn info | grep Relative 
svn switch path_from_previous_command
svn update

또는

svn switch `svn info | grep Relative | sed 's_.*: __'`
svn update

이 솔루션의 기초는 Lee Preimesberger의 블로그 에서 가져옵니다.


당신은 그것을 사용하여 이동하고 svn mv, 아니면 그냥 mv? 사용 mv하면이 문제가 발생할 수 있다고 생각 합니다.


안전을 위해 디렉토리를 로컬 시스템으로 옮긴 다음 svn은 바보 같은 디렉토리를 삭제 한 다음 커밋했습니다. 로컬 컴퓨터에서 폴더를 추가하려고 할 때 여전히 오류가 발생했습니다 (폴더의 이름을 바꾸려고 할 때 SVN 이동으로 같은 일이 발생했습니다). 그래서 나는 되돌아 갔고 mkdir DIRNAME을 수행하고 추가하고 커밋했습니다. 그런 다음 내용을 추가하고 커밋하여 작동했습니다.


각각 파일이 들어있는 몇 개의 디렉토리를 삭제 한 후이 오류를 임의로 받았습니다. Netbeans를 통해 디렉토리를 삭제하고 실제로 삭제하지 않았다는 것을 깨달았습니다. 디렉토리 안의 모든 것을 삭제하고 Netbeans 내의 디렉토리에 대한 참조를 제거하는 것처럼 보였습니다. 그들은 여전히 ​​파일 시스템에 존재했습니다. 파일 시스템에서 삭제되었는지 확인하고 커밋을 다시 시도하십시오.


한 번만 새로운 작업 복사본을 체크 아웃하고 .svn 디렉토리를 교체하여 새로이 체크 아웃 된 커밋 오류로 커밋 오류가 발생하여 비슷한 문제가 해결되었습니다. 필자의 경우 리포지토리 손상 및 백업에서 복원 한 후 작업 복사본이 복원 된 리포지토리에없는 수정 버전을 가리키고 있었기 때문입니다. 또한 "항목이 오래되었습니다"오류가 발생했습니다. 커밋 전에 작업 복사본을 업데이트해도 문제가 해결되지 않았지만 위에서 설명한대로 .svn을 대체했습니다.


나는 이것을했고 그것은 나를 위해 일했다 :
1. 파일을 백업하십시오. 코드를 텍스트 파일로 간단히 복사 할 수 있습니다.
2. 커밋하려는 파일 >> 팀 >> 이력 표시를 마우스 오른쪽 단추로 클릭하십시오. 3. "이력 표시"패널에 해당 파일의 모든 개정이 표시됩니다. 파일의 최신 개정판을 마우스 오른쪽 버튼으로 클릭 >> 개정판 가져 오기 : 로컬 변경 사항을 무시합니다.
4. 이제 코드를 백업 파일이있는 최신 파일과 병합하십시오 (1 단계).
5. 새로 병합 된 파일을 동기화하고 커밋합니다.


서버와 클라이언트를 Subversion 1.9로 업그레이드하십시오.

경우 out of date오류가 무작위로 발생 커밋 실행할 때 일반적으로, 당신이 오래된 지원되지 않는 서브 버전 1.7 이상 클라이언트 또는 서버를 사용하여 나타낼 수 있습니다하지 말아야 할 때.

문제를 해결하려면 서버와 클라이언트를 업그레이드해야합니다. HTTPv1을 통해 커미트 할 때 관련 Subversion 1.9 릴리스 정보 항목 : "오래된 날짜"오류를 참조하십시오 .


오류는 특정 파일을 업데이트하지 않았기 때문에 먼저 업데이트 한 다음 파일을 커밋 할 수 있기 때문입니다.


.svn에서 직접 변경을 제외한 모든 것을 시도했습니다. 아무것도 도움이되지 않으므로 여기에 내 해결책이 있습니다.

Eclipse> Window> Show View> History 에서 여러 svn "Override & Update"/ "Revert"/ delete file and checkout을 만들었지 만 파일이 최신 개정판이 아니라는 것을 알았습니다.

그래서 패키지 탐색기로 이동하여 파일을 마우스 오른쪽 버튼으로 클릭하고 바꿀 내용> 최신 저장소에서을 클릭하십시오 .

기록보기의 또 다른 모습은 파일이 최신 개정판에 있음을 보여줍니다.


"정리"그것은 당신을 궤도에 올릴 것입니다.

svn 폴더를 마우스 오른쪽 버튼으로 클릭하고 '정리'를 클릭하십시오. 오류가 발생하면이 작업을 수행하십시오.


트렁크의 파일로 이전 릴리스의 분기를 업데이트했을 때 이런 일이 발생했습니다. Windows 탐색기를 사용하여 트렁크 체크 아웃 폴더 에서 폴더 를 복사 하여 릴리스 분기 체크 아웃 폴더의 Eclipse보기에 붙여 넣었습니다. 이제 Windows 탐색기는 "."로 시작하는 "숨겨진"파일을 표시하지 않도록 구성되었으므로 릴리스 분기 체크 아웃 폴더에 모든 잘못된 .svn 파일을 붙여 넣는 것을 알 수 없었습니다. 도!

내 솔루션은 손상된 Eclipse 프로젝트를 날려 버리고 다시 확인한 다음 새 파일을보다 신중하게 복사하는 것이 었습니다. 또한 "숨겨진"파일을 표시하도록 Windows를 변경했습니다.


일부 파일을 커밋하려고 할 때이 오류가 발생했습니다. 작업 사본에는 존재하지 않는 파일 / 폴더였습니다. 나는 파일을 옮기고 다시 체크 아웃하는 번거 로움을 끝내고 싶지 않았고 결국 .svn / entries 파일을 편집하고 문제가되는 디렉토리 참조를 제거했습니다.


제 경우에는 로컬 버전을 삭제하고 새로운 사본을 다시 체크 아웃하는 것이 해결책이었습니다.


방금이 오류가 발생했습니다. 원본 파일이 있는지 먼저 서버에서 확인하는 것이 좋습니다. 때로는 로컬 폴더에서 변경 사항이 적용되지 않습니다. 이 상황이라면 폴더를 삭제하고 다시 체크 아웃하십시오.


해결하려면 문제가있는 파일을 되돌리고 작업 사본을 업데이트해야했고 나중에 파일을 다시 수정했습니다.이 단계 후에 오류가 더 이상 발생하지 않았습니다.


svn을 명령 행에 입력하거나 Windows에있는 경우 svn 업데이트 옵션을 선택하십시오.

  • 이 작업이 완료되면 커밋 및 다른 작업과 같은 추가 작업을 수행 할 수 있습니다.

디렉토리 commit에서 시도하는 동안 방금 이것을 얻었습니다 trunk. 디렉토리 svn update에서 수행해도 trunk오류가 해결되지 않았습니다. 그러나 svn update부모 디렉토리 ( .svn디렉토리가 속한)에서 수행하면 오류가 해결되었습니다.

무슨 일이 일어 났는지에 대한 나의 추측 (다른 것들의 유스 케이스,이 "svn : E160024 : 리소스가 오래되었습니다; 업데이트하십시오")에 대한 여러 가지 이유가있을 수 있습니다 :에 따라 디렉토리 trunk가있었습니다 branches. 내가 뽑아 branches/branch-1로를 masterGitHub의에서. 수행 svn update(즉, 내 작업 복사본의 루트) 대신 부모 디렉토리 trunk에서 수행 뭔가가있는 것 branches외에도을 trunk. commit다시 시도했을 때 오류가 없었습니다.

그러나 위에서 말했듯이 이것은 아마도 많은 경우 중 하나입니다.

참고 사항 : 누군가가 제안한 것과 달리 .svn디렉토리 에서 수동으로 재생하는 것이 좋습니다 생각하지 않습니다 .

참고 URL : https://stackoverflow.com/questions/87950/how-do-you-overcome-the-svn-out-of-date-error

반응형