2012-08-04 3 views
1

두 개의 PC와 svn repo가 ​​있습니다. 내 노트북을 사용하여 svn에 파일을 추가하고 svn을 다른 사람에게 말했습니다. 파일이 새 것으로, 내 두 번째 PC에는 존재하지 않지만 다음과 같이 표시됩니다.SVN이 하드 드라이브의 파일과 충돌하지 않습니다.

@konrad:~/svn$ ls web/web/browser.xslt.xml 
ls: cannot access web/web/browser.xslt.xml: No such file or directory 

@konrad~/svn$ svn up 
Conflict discovered in 'web/web/WEB-INF/xslt/browser.xslt.xml'. 
Select: (p) postpone, (df) diff-full, (e) edit, 
     (mc) mine-conflict, (tc) theirs-conflict, 
     (s) show all options: 

이게 무슨 의미입니까?

+0

어쩌면 둘 다 삭제 된 충돌일까요? (df)는 무엇을 보여줍니까? –

+0

당신은'ls web/web/browser.xslt.xml'에 오타가 있습니까? 충돌은'web/web/WEB-INF/xslt/browser.xslt.xml'에서 발생합니까? 충돌하는 경로에는'WEB-INF'가 있는데'ls'-path는 그렇지 않습니다 ... – eckes

+0

당신은 맞습니다, eckes,하지만 여전히 파일이 있는지 확실하지 않습니다. 이 문제에 다시 직면하면 질문을 업데이트 할 것입니다. –

답변

0

ls은 이 아니고 web/web/WEB-INF/xslt/browser.xslt.xml이 아닌 다른 파일을 표시합니다. 시스템에 web/web/WEB-INF/xslt/browser.xslt.xml이 없습니까?

나는 항상 이러한 신비한 갈등에 빠져 있습니다. 당신이 해결할 때까지 아무 것도 할 수 없기 때문에 나는 실망합니다. diff-full을 수행 한 다음 병합 할 대상 또는 병합 방법을 결정할 수는 있지만 문제를 해결하고 생각할 시간이 없기 때문에 항상 실망감을 느낍니다.

업데이트를 죽이고 svn status을 수행하십시오. 이것은 당신에게 이유를 줄 것이다. 파일을 svn delete (으)로 삭제 했으므로이 파일에 들어오는 업데이트가있는 것일 수 있습니다. 어쩌면 파일을 추가했는데 다른 사람도 그랬을 것입니다. 어쩌면 드라이브에 파일의 비 파괴 버전을 가지고 누군가가 Subversion에 추가했을 수 있습니다. 때로는 갈등이 단지 svn:mergeinfo 속성의 갈등에 불과하다는 것을 알게됩니다.

가장 쉬운 것은

은 문제를 제거하고 저장소에 지금은 무엇이든 동의를받을된다

  1. 파일상의 svn resolved를 수행합니다. 그러면 충돌 상태에서 벗어날 수 있습니다.
  2. 이제 파일에 svn status을 입력하십시오. 그러면 Subversion이 생각한 바를 알 수 있습니다. 예를 들어이 파일을 삭제했거나이 파일을 추가 했습니까?
  3. 파일이 으로 수정 된 것을 확인했다면 diff를 실행하여 수정 된 내용을 볼 수 있습니다. diff도 속성 값이 될 수 있다는 것을 기억하십시오!
  4. 파일이 작업 복사본에있는 경우 안전을 위해 파일을 다른 위치로 복사하십시오.
  5. svn revert을 작성하십시오. svn status은 파일이 깨끗한 것으로 보여야합니다.
  6. 이제 파일에 svn update을 추가 할 수 있습니다. 이제 저장소의 최신 사본을 갖게됩니다.

모든 사항을 지우고 나면 진행 방법을 결정할 수 있습니다. 이것이 내가 만든 변화와 누군가가 만든 변화 사이의 진정한 갈등이라 할지라도, 나는 아직도 그것을 이렇게하는 것이 더 좋습니다. vimdiff을 사용하여 차이점을 확인하고 업데이트 중간에 업데이트하는 것보다 훨씬 쉽게 업데이트 할 수 있습니다.

관련 문제