728x90
서버버전을 사용하여 소스코드 checkout 및 commit은 많이 하는데 왠지 branch를 만들거나 merge하려니 이거 좀 복잡한 생각이 들때가 있고 메뉴얼을 읽어 봐도 북잡하기만 하다.
그러나 Branch의 기능은 전제 Team의 개발에 영향을 주지 않고 혼자서 (또는 소규모 팀별로) 프로그램을 고치고 테스트 하고 잘 될때 head로 보낼때 아주 유용하게 사용할 수 있다. 서버버전을 사용하면 그 방법도 간단하다.
우선 Checkout 부터 한번 해보자. (Subversion 저장소- https://coolproj.googlecode.com/svn/trunk )
svn co https://coolproj.googlecode.com/svn/trunk/ coolproj
cd colproj
[작업]
svn ci -m"작업 잘 했음. 무엇 무엇 고쳤음. 무슨무슨 버그 잡았음"
이렇게 하는 것이 보통 그냥 branch같은거 사용하지 않고 하는 작업인데 여기서 branch만들기는 너무 간단하다.
svn copy coolproj https://coolproj.googlecode.com/svn/branches/new-hot-feature
이렇게 하면 끝이난다.
그런다음 이 새로운 branch 를 checkout 해서 작업을 하면 된다.
svn co https://coolproj.googlecode.com/svn/branches/new-hot-feature coolproj-branch
그냥 이전의 coolproj 라는 workspace를 사용하고 싶으면 살짝 'switch' 해주면 된다.
cd dupbug/
svn switch https://coolproj.googlecode.com/svn/branches/new-hot-feature
[작업]
svn ci -m"작업 잘 했음. 무엇 무엇 고쳤음. 무슨무슨 버그 잡았음"
이렇게 checkin 된 코드는 이전에 생성된 branch에 남아 있게 된다.
여러번 작업을 한다음 이 branch가 충분히 훌륭한 관계로 trunk에 보내고 싶다면 merge하면 된다. 우선 바로 merge하기 전에 (trunk가 변했을수도 있으므로) 몇가지 확인 해보자. 우선 --dry-run (예행연습)
svn merge --dry-run https://coolproj.googlecode.com/svn/branches/new-hot-feature \ https://coolproj.googlecode.com/svn/trunk
그러면 무엇이 바뀌는 것인지 보여 준다.
구체적으로 무엇이 달라졌는지 line-by-line으로 보고 싶으면 diff를 사용한다. (주의 URL의 순서가 merge때와 다르게 바뀌었다)
svn diff https://coolproj.googlecode.com/svn/trunk \
https://coolproj.googlecode.com/svn/branches/new-hot-feature
마지막으로 모든것이 좋아 보여 merge를 하려면 앞에서 dry-run을 하면 된다.
svn merge --dry-run https://coolproj.googlecode.com/svn/branches/new-hot-feature \ https://coolproj.googlecode.com/svn/trunk
branch와 merge는 작은 단위의 commit이 많이 필요할때는 불필요하게 다른 사람들이 나의 commit을 보이고 싶지 않을때 요긴하게 사용되는 기능이다. 한번만 사용해보면 쉽게 사용할 수 있다.
그러나 Branch의 기능은 전제 Team의 개발에 영향을 주지 않고 혼자서 (또는 소규모 팀별로) 프로그램을 고치고 테스트 하고 잘 될때 head로 보낼때 아주 유용하게 사용할 수 있다. 서버버전을 사용하면 그 방법도 간단하다.
우선 Checkout 부터 한번 해보자. (Subversion 저장소- https://coolproj.googlecode.com/
svn co https://coolproj.googlecode.com/
cd colproj
[작업]
svn ci -m"작업 잘 했음. 무엇 무엇 고쳤음. 무슨무슨 버그 잡았음"
이렇게 하는 것이 보통 그냥 branch같은거 사용하지 않고 하는 작업인데 여기서 branch만들기는 너무 간단하다.
svn copy coolproj https://coolproj.googlecode.com/
이렇게 하면 끝이난다.
그런다음 이 새로운 branch 를 checkout 해서 작업을 하면 된다.
svn co https://coolproj.googlecode.com/
그냥 이전의 coolproj 라는 workspace를 사용하고 싶으면 살짝 'switch' 해주면 된다.
cd dupbug/
svn switch https://coolproj.googlecode.com/
[작업]
svn ci -m"작업 잘 했음. 무엇 무엇 고쳤음. 무슨무슨 버그 잡았음"
이렇게 checkin 된 코드는 이전에 생성된 branch에 남아 있게 된다.
여러번 작업을 한다음 이 branch가 충분히 훌륭한 관계로 trunk에 보내고 싶다면 merge하면 된다. 우선 바로 merge하기 전에 (trunk가 변했을수도 있으므로) 몇가지 확인 해보자. 우선 --dry-run (예행연습)
svn merge --dry-run https://coolproj.googlecode.com/
그러면 무엇이 바뀌는 것인지 보여 준다.
구체적으로 무엇이 달라졌는지 line-by-line으로 보고 싶으면 diff를 사용한다. (주의 URL의 순서가 merge때와 다르게 바뀌었다)
svn diff https://coolproj.googlecode.com/
https://coolproj.googlecode.com/
마지막으로 모든것이 좋아 보여 merge를 하려면 앞에서 dry-run을 하면 된다.
svn merge --dry-run https://coolproj.googlecode.com/
branch와 merge는 작은 단위의 commit이 많이 필요할때는 불필요하게 다른 사람들이 나의 commit을 보이고 싶지 않을때 요긴하게 사용되는 기능이다. 한번만 사용해보면 쉽게 사용할 수 있다.
728x90
'dev util' 카테고리의 다른 글
yum install Transaction check error (0) | 2019.05.29 |
---|---|
openstack, DevStack (0) | 2018.12.27 |
도커 / docker (0) | 2018.12.26 |
MySql.Data - MYSQL 5.X connector net (0) | 2013.04.27 |
댓글