SVN 오류-작업 사본이 아님


215

최근에 svn 서버가 변경되었고 svn 스위치를 사용했습니다.

작업 복사본에는 버전이없는 많은 리소스가 있었기 때문에 작업 복사본이 잠기고 svn 아래의 모든 폴더에 대해 폴더별로 폴더를 전환하기 시작했습니다.

그러나 저장소의 최상위 레벨에서 파일을 업데이트하려고하면 svn : Working copy '.'가 표시됩니다. 잠긴 오류 및 정리도 도움이되지 않습니다. 정리할 때 다음과 같은 오류가 발생합니다 . svn : 'content'는 작업중인 복사 디렉토리가 아닙니다.

신선한 체크 아웃은 전혀 옵션이 아닙니다. 잠금 장치를 청소 및 해제하고 스위치를 완전히 수행하는 다른 방법이 있습니까?

편집 : JesperE의 답변에서 마지막 단락

재귀적인 "svn cleanup"을 수행 할 때 "작동중인 사본이 아님"을 얻는다면 내 추측에 따르면 작업중 인 사본이어야하는 디렉토리가 있습니다 (예 : 최상위 레벨의 .svn 디렉토리는 그렇게 말합니다). 자신의 .svn 디렉토리. 이 경우 해당 디렉토리를 제거 / 이동 한 다음 로컬 업데이트를 수행 할 수 있습니다.

저장소의 문제에 대한 해결책 인 것 같습니다. 해당 폴더를 식별하고 해당 특정 폴더를 새로 체크 아웃하고 와우, 후속 정리에서 잠금이 해제됩니다! 많은 JesperE 감사합니다!

그러나 여전히 svn 스위치 오류를 파악할 수 없으며 현재 다음과 같은 내용을 읽습니다.

svn : 'svn : // repourl / reponame / foldername'의 저장소에는 uuid 'm / reponame'이 있지만 WC에는 'b5b39681-0ff6-784b-ad26-2846b9ea8e7d'가 있습니다.

어떤 아이디어?


이 오류가 발생하는 R 사용자의 경우 : github.com/wch/r-source/wiki#adding-svn-information
isomorphismes

답변:


126

재귀를 할 때 "작업 복사본이 아님"을 얻는다면 svn cleanup내 추측은 작업 복사본이어야하는 디렉토리 (즉 .svn최상위 디렉토리 의 디렉토리)가 있지만 자체 .svn디렉토리 가 없다는 것입니다 . 이 경우 해당 디렉토리를 제거 / 이동 한 다음 로컬 업데이트 (예 :)를 시도 할 수 rm -rf content; svn checkout content있습니다.

당신이 얻을 경우 not a working copy오류를, 그것은 서브 버전은 적절한 발견 할 수 없다는 것을 .svn거기에서 디렉토리를. .svn디렉토리 가 있는지 확인하십시오contents

이상적인 해결책은 가능한 경우 새로 체크 아웃하는 것입니다.


1
동의하면 작업 복사본을 리포지토리로 옮기는 대신 새로운 체크 아웃을 수행하십시오.
Tigraine

2
내 문제는 새 서버로 마이그레이션하고 아직 커밋되지 않은 작업으로 파일 시스템의 백업을 복원했으며 svnadmin을 사용하여 더 이상 필요없는 오래된 프로젝트를 필터링한다는 것입니다. 내 저장소에는 필요한 모든 정보가 포함되어 있지만 새로운 UUID가 있습니다. 이 경우 변경된 파일을 압축 해제하고 새로 체크 아웃 한 다음 압축을 해제합니다.
Drarok

첫 번째 단락의 제안이 내 시스템 (W7 + Cygwin)에서 작동하지 않습니다. 오히려 rm & svn 업데이트가했습니다.
Jukka Dahlbom

17
경고 : rm -rf 폴더를 content영구적으로 삭제합니다 . 실행하기 전에 백업을 수행하십시오.
KrishPrabakar

47

비슷한 상황 ( svn: 'papers' is not a working copy directory)으로 다른 방식 으로 들어갔 으므로 전투 스토리를 게시하겠다고 생각했습니다 (간체).

$ svn add papers
svn: Can't create directory 'papers/.svn': Permission denied

죄송합니다! 권한 수정 ... 다음 :

$ svn add papers
svn: warning: 'papers' is already under version control
$ svn st
~     papers
$ svn cleanup
svn: 'papers' is not a working copy directory

그리고 papers길을 벗어나 달리고 svn up(OP에서 일한) 달리기도 해결하지 못했습니다. 내가 한 일은 다음과 같습니다.

$ mv papers papers_
$ svn cleanup
$ svn revert papers
Reverted 'papers'
$ mv papers_/ papers
$ svn add papers

효과가있었습니다.


6

나는 그것을 해결했다.

  1. 영향을받는 폴더의 백업 복사
  2. SVN은 영향을받는 폴더를 되돌립니다
  3. 백업에서 파일을 다시 붙여 넣기

제 경우에는 문제가 삭제 된 .svn-files 때문이었습니다.


어떻게합니까? 간략하게 설명해주십시오
아난드 Savjani에게

5

어쩌면 방금 폴더 트리를 복사하고 가장 낮은 폴더를 추가하려고했습니다.

SVN
|_
  |
  subfolder1
       |
       subfolder2   (here you get an error)

이 경우 상위 레벨에서 디렉토리를 커밋해야합니다.


3

해결 방법 : '작업 복사본'이 아닌 디렉토리 이름 바꾸기이 디렉토리를 다시 체크 아웃 / 업데이트 / 복원 이름이 바뀐 디렉토리에서 새 커밋 변경으로 파일 이동

이유 : .svn 디렉토리의 일부 파일을 일부 변경하면 '작업 사본'이 중단됩니다.


3

새 디렉토리 내에 파일을 작성한 경우, 디렉토리를 추가해야하므로 'svn add newdir / newfile'대신 'svn add newdir'을 사용하십시오. 디렉토리 내의 모든 파일이 기본적으로 추가됩니다.


1

방금 "작업 사본이 아님"을 얻었으며 그 이유는 Unix의 Automouter였습니다. 새로운 "cd / path / to / work / directory"가 그 트릭을 만들었습니다.


1

마찬가지로 'contrib'폴더를 업데이트해야했습니다.

  1. 이전 폴더를 옮기고
  2. 새로운 것을 복사했습니다
  3. .svn 폴더를 각 새 폴더 (내 경우에는 3 개만)에 복사했습니다.

내 경우에도 문제는 삭제 된 .svn 폴더 때문이었습니다.

해결되었습니다.


이클립스 플러그인을 사용하여 SVN 정리에 약 4 시간이 걸렸습니다. 워킹 카피는 잠겨있지 않습니다. 아닙니다. 더 나은 메시지 이클립스 사람들과 함께합니다.
다스 존

1

하위 폴더에서 루트 폴더로 .svn 폴더를 붙여 넣었습니다. 효과가있다!!!


1

이것이 내가 한 일입니다.

  1. 트렁크 이름을 trunk_로 변경
  2. 새 폴더 트렁크를 만듭니다
  3. 몇 개의 파일이 체크 아웃 된 후 다시 체크 아웃하고 프로세스 중단
  4. 파일을 trunk_에서 trunk로 이동
  5. svn 정리를
  6. svn 업데이트를 수행하십시오. 파일 상태가 업데이트되고 모든 파일의 버전이 지정됩니다.

1

또한 svn diff 작업 에서이 문제를 만났습니다. 잘못된 파일 경로로 인해 발생했습니다 './'. 현재 파일 디렉토리를 나타 내기 위해 추가해야합니다 .


0

svn : 'svn : // repourl / reponame / foldername'의 저장소에는 uuid 'm / reponame'이 있지만 WC에는 'b5b39681-0ff6-784b-ad26-2846b9ea8e7d'가 있습니다.

모든 Subversion 저장소에는 고유 식별자 (uuid)가 있습니다. Subversion은이를 사용하여 전환과 같은 작업을 수행 할 때 repo가 ​​실제로 동일한 지 확인합니다. 서버의 uuid를 이전과 동일하게 변경해야합니다.


서버에서 UUID 변경-어떻게해야합니까?
Vijay Dev

솔직히, 나는 모른다, 그냥 할 수 있다고 가정합니다. Subversion Book에서 확인한 내용이 있습니까?
JesperE

0

작동중인 복사 형식이 일치하지 않을 수 있습니까? svn 1.4와 1.5 사이에서 변경되었으며 최신 도구는 자동으로 형식을 변환하지만 이전 도구는 더 이상 변환 된 사본에서 작동하지 않습니다.


0

프로젝트에서 SVN-기본 파일 (읽기 전용 파일)을 삭제해야합니다. 이로 인해이 오류가 발생합니다.

새로운 프로젝트를 다시 체크 아웃하고 "Winmerge"를 사용하여 기존 SVN 프로젝트의 변경 사항 (있는 경우)을 새 프로젝트와 병합 한 후 최신 체크 아웃에서 변경 사항을 커밋하십시오.


0

@JesperE UUID를 변경해야 한다고 언급 했습니다. 다음은이를 달성하는 데 도움이됩니다.

SVN 1.5 이상에서는 svnadmin setuuid를 수행 할 수 있습니다. 그런 다음 svnlook uuid를 사용하여 올바르게 설정되었는지 확인할 수 있습니다. 이전 버전의 SVN에서는 더 어려운 프로세스입니다. http://chestofbooks.com/computers/revision-control/subversion-svn/Managing-Repository-UUIDs-Reposadmin-Maint-Uuids.html을 참조하십시오 .

또한 "m / reponame"의 UUID는 의심스러워 보입니다. 나는 그것이 작업 복사본과 같은 16 진수 형식이어야한다고 생각 하므로이 작업은 모든 것을 향상시킬 것입니다 :-)

[원래 @JesperE의 답변 에 댓글을 달았 지만이 답변을 만들어 사람들에게 더 명확하고 Google에 더 도움이되도록 만들었습니다. 그 이후로 내 의견을 삭제했습니다. ]


0

이 같은 문제가 있었지만 같은 기계에서 Slik 1.6.2와 Tortoise를 사용했습니다. Tortoise가 업데이트되었지만 작업 복사본이 업데이트되었지만 Slik은 그렇지 않았으므로 Tortoise는 정상적으로 작동했지만 명령 줄은 실패했습니다.

svn : '.' 작업 복사본 디렉토리가 아닙니다

Tortoise와 Slik을 모두 제거한 다음 명령 줄 도구를 사용하여 Tortoise를 다시 설치하면이 문제가 해결되었습니다.


0

Mac의 경우 :-서버 측에서 체크 아웃하면 새 폴더가 로컬 컴퓨터에서 디렉토리를 선택하여 선택한 폴더에 모든 코드를 넣은 다음 svn local side를 열고 프로젝트를 추가하고 커밋합니다.


0

오늘 나는 /FILE_NAME/ is not a working copy아침에 같은 문제 를 발견 했으며 그것을 해결하기 위해 2 시간 이상을 보냈습니다. RND와 Google의 오랜 후 나는 몇 가지 해결책을 찾았습니다 CHECKOUT.

  1. CHECKOUT ...에서 SUBVERSION새로운 프로젝트로 현지
  2. 자바 파일의 일부 코드를 변경하고 프로젝트를 커밋하십시오.
  3. 그것은 나를 위해 작동합니다.

그것이 당신에게 도움이되기를 바랍니다.


0

최근에 다른 개발자 Mac을 사용하고 있었는데 같은 상황이 발생했습니다. 문제가있었습니다. 먼저 터미널에 대한 repo 경로를 입력해야했지만 사용자 이름과 암호가 무엇인지 말하지 않았습니다.


0

방금 .svn 디렉토리가 다른 컴퓨터의 nfs 서버에 있고 nfs 클라이언트가 파일 잠금 서비스 ( lockd)를 실행하지 않는 경우가 발생했습니다 .

svn: E155007: '/mnt/svnworkdir' is not a working copy

이것은 한 번 사라졌다 lockd nfs 클라이언트 호스트에서 시작된 .

파일을 잠그는 데 문제가있는 경우 Subversion에서 더 나은 오류 메시지가 나타날 수 있습니다. 이것은 Subversion 1.10.0이었습니다


0

동일한 프로젝트에서 다른 위치로 새 체크 아웃을 한 다음 .svn 폴더를 복사하여 이전 .svn 폴더로 바꿨습니다. 그 후 svn 업데이트 기능을 호출하고 모든 것이 최신으로 올바르게 동기화되었습니다.


-1

로컬 컴퓨터에있는 .svn 폴더를 삭제하십시오. Windows 아이콘을 누르고 .svn을 입력하고 전체 폴더를 삭제하십시오. 그것은 나를 위해 일했다.

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