“업데이트시 로컬 편집, 수신 삭제”메시지를 해결하는 방법


293

내가 할 때 나는 svn status .이것을 얻는다 :

!     C auto-complete-config.elc
      >   local edit, incoming delete upon update
!  +  C auto-complete.elc
      >   local edit, incoming delete upon update
!  +  C popup.elc
      >   local edit, incoming delete upon update
!  +  C fuzzy.elc
      >   local edit, incoming delete upon update

기본적으로 이러한 파일은 리포지토리에 없어야합니다. 개발자가 제거했습니다. 그런 다음 svn rm ...실수로 실수를 한 것으로 생각합니다 ( svn update .대신 해야 합니다).

이제, 내가 할 때이 svn status .트리 충돌 메시지가 나타납니다.

여기 에서 문서를 찾았 지만 문서 에 따라 "병합"하는 방법을 모르겠습니다.

그들을 제거하는 방법?

작업 사본이 저장소와 동기화되어 있다고 생각합니다. 이 메시지가 왜 나타나는지 모르겠습니다. 이 파일들은 어디에서나 아는 한 제거해야합니다. 나는 시도 svn update .하고 svn revert .있지만 내가 할 때 나는 아직도이 메시지 svn status ..


1
Lesmana의 답변은이 메시지에도 적용됩니다"local missing or deleted or moved away, incoming dir edit upon merge"
Warlike Chimpanzee

답변:


434

짧은 버전 :

$ svn st
!  +  C foo
      >   local edit, incoming delete upon update
!  +  C bar
      >   local edit, incoming delete upon update
$ touch foo bar
$ svn revert foo bar
$ rm foo bar

충돌 대신 파일의 디렉토리에 대한이면 교체 touchmkdirrm함께 rm -r.


참고 : 다음 상황에서도 동일한 절차가 작동합니다.

$ svn st
!     C foo
      >   local delete, incoming delete upon update
!     C bar
      >   local delete, incoming delete upon update

긴 버전 :

다른 사람이 파일을 삭제하고 먼저 커밋 한 동안 파일을 편집 할 때 발생합니다. 좋은 svn 시민으로서 당신은 커밋 전에 업데이트를 수행합니다. 이제 갈등이 생겼습니다. 파일을 삭제하는 것이 작업 복사본에서 파일을 삭제하는 것이 옳다는 것을 인식하십시오. svn은 이제 컨텐츠가 아니라 로컬 파일이 누락되었으며 궁극적으로 파일이 삭제 된 것을보고 싶은 충돌 업데이트가 있다고 불평합니다. 잘 했어 svn.

해야 svn resolve어떤 이유로 작동하지, 다음을 수행 할 수 있습니다 :

초기 상황 : 로컬 파일이 없거나 업데이트가 충돌합니다.

$ svn st
!  +  C foo
      >   local edit, incoming delete upon update
!  +  C bar
      >   local edit, incoming delete upon update

충돌하는 파일을 다시 작성하십시오.

$ touch foo bar

충돌이 디렉토리 touch와 관련 이 있으면로 교체하십시오 mkdir.

새로운 상황 : 리포지토리에 추가 될 로컬 파일 (예, svn 등)은 여전히 ​​충돌합니다.

$ svn st
A  +  C foo
      >   local edit, incoming delete upon update
A  +  C bar
      >   local edit, incoming delete upon update

파일을 svn이 좋아하는 상태로 되돌립니다 (즉, 삭제됨).

$ svn revert foo bar

새로운 상황 : svn으로 알려지지 않은 로컬 파일이 더 이상 충돌하지 않습니다.

$ svn st
?       foo
?       bar

이제 파일을 삭제할 수 있습니다 :

$ rm foo bar

충돌이 디렉토리 rm와 관련 이 있으면로 교체하십시오 rm -r.

svn은 더 이상 불평하지 않습니다.

$ svn st

끝난.


8
디렉토리와의 충돌이있을 때에도 작동합니다. 대신에 터치 foo는 막대MKDIR foo는에서 mkdir 바 . 다른 모든 것은 동일합니다.
Vipin Johney

svn st | grep ! | cut -f 7 -d' ' | xargs touch누락 된 모든 파일을 터치하기위한 하나의 라이너로 사용할 수 있습니다.
Tibor Blenessy

디렉토리도 rm -r foo bar(또는 rmdir foo barWindows 또는 Windows를 좋아하는 경우) 기억하십시오 .
trysis

이 답변은 나의 정신을 구했습니다. 감사합니다.
Sam

159

를 사용하여 충돌을 해결하십시오

svn resolve --accept=working PATH

감사. 그것이 올바른 해결책 인 것 같습니다. (이전에 "해결"옵션에 대해 몰랐습니다. 나는 대답으로 표시했습니다. 어떤 이유로 든 작동하지 않을 수도 있습니다. 아마도 작업 사본 트리가 손상되었거나 그렇지 않아서 ... 결국 해결했습니다. 그냥 디렉토리를 삭제하고 업데이트를 수행하여
Xah Lee

1
처음에는 작동하지 않았으므로 임시 폴더에서 svn 분기의 다른 사본을 확인했습니다. 그런 다음 충돌을 일으키는 PATH를 삭제하고 변경 사항을 커밋했습니다. 그 후 나는 원래 사본으로 돌아가서이 명령을 실행했습니다. "PATH의 충돌 상태를 해결했습니다"라는 메시지와 함께 작동했습니다. 감사합니다. :)
Durin

"리졸 브"는 작업 복사본에서만 작동하기 때문에 원본이 저장소에서 삭제되거나 저장소에없는 경우에는 문제가되지 않습니다.
govi 2016 년

나를위한 완벽한 솔루션
Sergio Álvarez

20

방금 동일한 문제가 발생하여

$ svn revert foo bar

문제를 해결했다.

svn resolve가 작동하지 않았습니다.

$ svn st
!  +  C foo
      >   local edit, incoming delete upon update
!  +  C bar
      >   local edit, incoming delete upon update

$ svn resolve --accept working
svn: Try 'svn help' for more info
svn: Not enough arguments provided

$ svn resolve --accept working .

$ svn st
!  +  C foo
      >   local edit, incoming delete upon update
!  +  C bar
      >   local edit, incoming delete upon update

$ svn resolve --accept working foo
Resolved conflicted state of 'foo'

$ svn st
!  +    foo
!  +  C bar
      >   local edit, incoming delete upon update

2

충돌하는 디렉토리 내에서 변경하지 않은 경우 rm -rf conflicts_in_here/및을 수행 할 수도 있습니다 svn up. 이것은 적어도 나를 위해 일했습니다.


1

로컬 디렉토리를 svn으로 되돌릴 수 있습니다.

 svn revert -R your_local_path

덕분에, 또한 해결하기 위해 나에게 도움 A + C path/to/dir> local dir edit, incoming dir delete or move upon update
RAM237

0

따라서 삭제 한 파일을 되돌릴 수 있습니다. iOS와 같은 설정된 프로젝트 파일로 모든 유형의 프로젝트에서 작업중인 경우 파일을 되 돌리면 파일이 시스템 폴더 구조에는 추가되지만 프로젝트 파일 구조에는 추가되지 않습니다. 이 경우 추가 단계가 필요할 수 있습니다.


0

이 문제는 종종 잘못된 디렉토리에서 다른 분기 변경 사항 을 병합 하려고 할 때 발생합니다 .

전의:

Branch2\Branch1_SubDir$ svn merge -rStart:End Branch1
         ^^^^^^^^^^^^
   Merging at wrong location

실행에서 발생하는 충돌은 다음과 같습니다.

Tree conflict on 'Branch1_SubDir'
   > local missing or deleted or moved away, incoming dir edit upon merge

그리고 q 를 선택 하여 해결끝내면 상태는 다음과 같습니다.

 M      .
!     C Branch1_SubDir
      >   local missing or deleted or moved away, incoming dir edit upon merge
!     C Branch1_AnotherSubDir
      >   local missing or deleted or moved away, incoming dir edit upon merge

이는 병합에 Branch1_SubDirand와 관련된 변경 사항이 포함되어 Branch1_AnotherSubDir있으며 이러한 폴더를 내부에서 찾을 수 없었 음을 의미합니다 Branch1_SubDir(디렉토리는 내부에있을 수 없음).

처음에이 문제를 피하는 방법 :

Branch2$ svn merge -rStart:End Branch1
 ^^^^
Merging at root location

간단한 수정 나를 위해 일한이 문제에 대한 :

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