사용자 도구

사이트 도구


develop:vcs:subversion:conflict

문서의 이전 판입니다!


Subversion Conflict

SVN 파일 충돌

  1. 소스를 수정할때, 다른 사용자가 동일한 파일을 수정해 commit을 해버린 경우, 해당 파일을 commit하려할때 충돌이 발생한다.
  2. SVN을 commit 이나 update를 할때 파일 충돌(conflict)이 발생할 수 있다.

예제

$ svn update
Conflict discoverd in 'admin/school.java'.
Select : (p) postpone, (df) diff-full, (e) edit,
         (h) help for more options:

해결방법

  1. Subversion은 conflict가 일어난 파일을 수정한 후에 문제를 해결했다는 표시를 줘야 해결이 된 것으로 간주한다.
  2. conflict가 일어나면,
    내가 수정한 버전 school.java.mine,
    기존 커밋된 최종버전 school.java.r19,
    내가 checkout 했던 최종 버전 school.java.r13 과 같은 임시 파일들이 생겨나는데,
    버전 충돌 문제를 해결한 후에 svn resolved [filename] 명령어를 실행시켜주면 임시 파일들도 자동으로 삭제가 되며 수정한 파일은 commit 을 할 수 있는 merge 상태로 바뀌게 된다.
p 나중에 해결한다.
충돌이 발생한 파일 내에 ««, »»로 표시가 된다.
내가 편집한 내용은 .mine 파일에 저장되고,
저장소에서 가져온 파일은 .리비전번호가 된다.
df 변경된 부분을 전부 다 보여준다.
e 병합된 파일을 에디터로 수정한다.
mf 내 파일(my file)을 의미한다.
저장소에 있는 파일을 표현
tf 그들의 파일(their file)을 의미,
내가 편집한건 무시.
서버에 있는 파일로 강제 업데이트
r 충돌이 해결되었다고 표시.
내가 편집한 내용으로 저장
svn resolved [filename]
develop/vcs/subversion/conflict.1413653070.txt.gz · 마지막으로 수정됨: 2014/10/19 02:24 저자 starlits