SVN merge & 충돌시 대처법

2025. 3. 18. 10:52·기타/협업 Tool
목차
  1. 충돌나는 상황을 만들어보자!
  2. ⭐결론

충돌나는 상황을 만들어보자!

  • RevisionHistory.txt 파일의 일부를 수정해보자.

Figure 1. RevisionHistory.txt 의 일부화면

  • 위 사진에 네모친 부분에 텍스트를 추가하여 충돌나는 상황을 만들어보았다.

 

⭐trunk 브랜치에서 내용을 변경

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

Figure 2. trunk 브랜치에서 checkout 후 trunk라는 글자를 삽입 & trunk 브랜치로 commit

 

⭐ branch1 브랜치에서 내용을 변경

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

Figure 3. branch1 브랜치에서 checkout 후 branch1이라는 글자를 삽입 & branch1 브랜치로 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하기

Figure 4. 주황색 세모 경고표시 & Edit conflicts를 클릭

  • edit conflicts를 클릭한다.

Figure 5. 충돌이 발생한 지점

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

Figure 6. 충돌이 발생하여 바뀌어버린 RevisionHistory.txt 파일

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

Figure 7. 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 명령어들 정리  00 2025.03.18
  1. 충돌나는 상황을 만들어보자!
  2. ⭐결론
'기타/협업 Tool' 카테고리의 다른 글
  • svn 기본 내용 및 svn cli 명령어들 정리
Kim Somyeong
Kim Somyeong
Junior Embedded programmer
  • Kim Somyeong
    임베디드 공부일지
    Kim Somyeong
    📫somung2000@naver.com
  • 전체
    오늘
    어제
  • 블로그 메뉴

    • 홈
    • Github
    • 전체 글 수 99
      • 과제 및 프로젝트 55
        • flight controller 11
        • 임베디드 시스템 설계 44
        • 전자회로실험 00
      • DEV STUDY 11
        • RTOS 00
        • Kernel 00
        • C language 00
        • Computer Architecture 00
        • Algorithms 00
        • Computer Science 11
      • 기타 33
        • 협업 Tool 22
        • 장비사용법 11
  • 태그

  • 인기 글

  • 최근 글

  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.3
Kim Somyeong
SVN merge & 충돌시 대처법
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.