충돌나는 상황을 만들어보자!
- RevisionHistory.txt 파일의 일부를 수정해보자.

- 위 사진에 네모친 부분에 텍스트를 추가하여 충돌나는 상황을 만들어보았다.
⭐trunk 브랜치에서 내용을 변경
- 먼저 서버에서, RTOSport/trunk 브랜치를 local의 임의의 폴더로 checkout
- RevisionHistory.txt 파일 맨 윗줄에 ----- 되어있는 부분 맨 오른쪽에 trunk라는 글자를 삽입
- svn info 로 현재 브랜치가 trunk 브랜치인지 확인하고, svn commit 하기

⭐ branch1 브랜치에서 내용을 변경
- 서버에서, RTOSport/branches/branch1 브랜치를 local의 임의의 폴더로 checkout
- RevisionHistory.txt 파일 맨 윗줄에 ----- 되어있는 부분 맨 오른쪽에 branches/branch1이라는 글자를 삽입
- svn info로 현재 브랜치가 RTOSport/branches/branch1 브랜치인지 확인하고, svn commit하기

⭐merge하기
- branch1 브랜치에서 내용을 변경 까지 진행했다면, 현재 로컬 working directory 폴더의 내용은 branches/branch1 브랜치의 내용일 것이다.
- 아무튼 이제 원격 브랜치를 변경
svn switch svn://[IP]:[port]/STM32L432KSM/RTOSport/branches/branch1
- 이 명령어를 입력하면 원격브랜치가 branch1에서 trunk로 바뀜. 이 상태에서 merge를 진행
svn merge svn://[IP]:[port]/STM32L432KSM/RTOSport/branches/branch1
- 이 명령어의 뜻은,
현재 내 브랜치가 trunk 브랜치인데, 여기로 branches/branch1 을 overwrite or merge 해라
라는 뜻임. - 해당 명령어를 입력하면, 로컬 working directory에 주황색 세모 경고표시가 뜬다.
⭐merge하기

- edit conflicts를 클릭한다.

- edit conflicts 를 통해 나온 gui 화면을 통해, 어느 지점에서 충돌이 발생했는지 직관적으로 판단하고 수정할 수 있다.

- 충돌이 발생한 파일 자체를 열어보면, Figure 6처럼 변해있는 것을 확인할 수 있다.
- 어떻게 충돌이 났는지 직관적으로 알기 어렵지만, 그래도 뜻을 파악해보면 다음과 같다.

⭐충돌 해결 완료 후 SVN에 알리기
- 현재 브랜치는 trunk 브랜치일 것임.
- trunk 브랜치로 switch 한 후 아래 명령어를 입력했었기 때문.
svn merge svn://[IP]:[port]/STM32L432KSM/RTOSport/branches/branch1
- 충돌을 해결했다면 svn resolved RevisionHistory.txt 이런 식으로 svn에게 충돌이 해결되었다는 것을 알려야 한다.
- 그 후, svn commit -m "Merged branch1 into trunk and resolved conflict" 이렇게 commit 해주기
- branch1을 trunk에 병합하고 충돌을 해결함 이라는 뜻임.
⭐결론

'기타 > 협업 Tool' 카테고리의 다른 글
svn 기본 내용 및 svn cli 명령어들 정리 | 2025.03.18 |
---|