프로그래밍/VersionControl

SVN 공동으로 commit 겹치는문제 해결법

Jay Tech 2017. 1. 7. 16:16
반응형

공동작업툴은 굉장히 효율적이지만 잘못 썼다간 같이 박살이날 수 있는 양날의 검이다.



버전관리는 익히기 매우 까다롭다. 안드로이드 스튜디오에서 어설프게 깃을 쓰다가 하루동안 삘받아서 한 작업들이 다 박살이 났던 경험이 있어서 매우 조심해서 다뤄야 한다는 것을 느꼈다.


이번 포스팅은 SVN을 사용했을 시 공동 작업문제를 해결 할 수있는 방법에 대해 소개한다.



참고로 Navigator탭에서 폴더와 파일 오른쪽에 숫자는 commit수를 나타낸다.






이제 commit하는 경우의 수를 나눠 보겠다.



1) 파일 수정 후 commit하는데 아무도 건드리지 않은 상태 (나 혼자 작업->문제가 발생하지 않는 이상적인 상태)





그냥 commit 한다 ~




2) 작업시작전 (난 아무것도 안걸드렸음) 상대방이 수정한 부분을 추가해서 작업을 시작하는 경우





그렇다면 update를 해야 한다. 우측에는 2개의 화면이 나눠져 있는데 왼쪽에 내 local이고 오른쪽이 서버에 변경된 파일이다.


우클릭->update를 한다~


여기까진 무난하다...






3) 내가 수정하고 commit하려는데 상대방이 이미 파일을 바꿔놓았다. (하지만 같은 line을 건들지 않은 상태)







그러면 빨간색 경고 심볼이 나타난다.


다행히 상대방이 나랑 같은 곳을 건드리지 않았다.


그럼 먼저 update를 해야한다. (순서주의)


update를 해서 상대방것을 추가하고 그 뒤에 commit을 한다~ 해결~~





4) 내가 수정하고 commit하려는데 상대방이 같은 곳을 수정한 경우


오른쪽 화면 까지 빨간 경고가 나타난다.





x된거같지만 잘 해결해야 한다. 당사자와 쇼부를 봐야 한다. 내가 고칠 순 있지만 상대방(팀원)의 의도가 분명히 있을 것이기에 상의를 해야한다. 


** 주의 -> 막 아무거나 누르면 안된다. 예전에 몰라서 아무거나 누르다가 작살나서 노트북도 같이 작살 낼 뻔했다.





이렇게 경우를 따져 보았다. 익숙해 지려면 시간이 걸리겠지만 협업에 있어 제일 중요한 내용이므로 꼭 익혀두어야 하는 기술이다.


마지막으로 위험한 기능 몇 개를 보겠다.



아까 Synchronize 탭에서 프로젝트 우클릭 하면 Override and commitOverride and update 2가지 항목이 있는 것을 볼 수 있다.



Override and update는 내것 (local) 다 무시하고 그냥 서버에 있는 모든 내용을 내 저장소에 덮는 것이다. 이것은 내가 작업하는데 수정 못할 정도로 망쳤을 때 복구할 수 있는 기능이다.


Override and commit은 서버쪽 다 무시하고 내 것을 서버에 그대로 박는것이다. 협의 없이 한다면 다른 팀원을 무시하고 팀프로젝트를 박살내는 행위이다.


반응형

'프로그래밍 > VersionControl' 카테고리의 다른 글

SVN commit 실수, 파일 잘못 덮어졌을 때  (0) 2017.01.07
SVN commit(커밋) 방법  (0) 2017.01.07
SVN 기본 셋팅  (0) 2017.01.07