me2day

Mercurial workflow #2

출처 : http://blogs.sun.com/tor/entry/mercurial_tip_checking_in_regularly

mercurial을 써서 co-worker와 작업을 잘 하고 있는데 가끔은 code를 push하려고 할대 이해할 수 없는 메시지를 만날 때가 있다.
# hg merge
abort : outstanding uncommitted changes

한번은 어찌 어찌해서 처리는 했는데 오늘 또 그걸 당하니 원인도 모르겠고.
그래서 구글링 해서 위 페이지를 찾았다.

요는 코드 수정하는 clone과 sync용 clone을 분리한다는 거.

1. 우선 2개의 clone을 생성한다.
2. 작업용 clone에서 hgrc파일에서 default 항목을 막아서 실수로 직접 push할 수 없게 한다.
3. 작업용 clone 에서 실컷 작업한다.
4. sync용 clone에서 작업용 clone에서 편집한 내용을 가져온다.(pull)
[sync] $ hg pull ../work && hg update
5. sync용 clone에서 main repository의 내용을 pull하여 최선 결합(?) 버전을 만든다.
[sync] $ hg fetch
혹은
[sync] $ hg pull && hg merge && hg ci -m “merged”
6. sync용 clone에서 main repository로 push한다.
7. 작업용 clone에서 sync용 clone 의 최신 내용을 가져온다
[work] $ hg pull ../sync

2가지 질문 점.
1. 왜 이 방법은 문제가 없을까? sync clone에서는 단지 2개의 서로 다른 변경내용을 합치기만 해서???
2. 작업용 clone의 default를 main repository가 아니라 sync용 repository로 변경하면 안되나???

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s