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

내가 할 때 나는 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 ..



답변

짧은 버전 :

$ 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

끝난.


답변

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

svn resolve --accept=working PATH


답변

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

$ 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


답변

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


답변

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

 svn revert -R your_local_path


답변

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


답변

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

전의:

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 .