git on svn

이젠 이런저런 기능들이 좀 더 눈에 들어온다.

하지만 귀찮은 점도 꼭 섞여있다.

SVN 쪽으로 commit 할 때, 기본적으로 두단계를 거치게 된다(사실 이게 원하던 바이다).

  1. git 내부로 로컬 커밋 (git add 변경사항 -> git commit )
  2. 로컬 git repository -> (central) svn repository  (git svn dcommit)

2가 좀 귀찮은데, 1에서 변경한 사항(tracked & modified)가 남아있으면 바로 커밋이 안된다. 그래서 이것 역시 git stash로 잠시 숨겨둬야 커밋이 된다. 그리고 1 단계에서 커밋이 여러 번 일 수 있는데, 이걸 추가(amend) 형태로 커밋한게 아니면 별도의 리비젼 여러개를 연속으로 SVN에 보내는걸 보게 된다(…). 이건 좀 맘에 안듬; 물론 커맨드 쓸 때 신경 한 번만 더 쓰면 해결되는 문제.

1 덕에 실험적인걸 쉽게 브랜칭해버리거나, 아니면 간단한(…) 롤백 지점을 확보할 수 있다는게 좋은데, 신경 안쓰면 2에서 문제(문제라기보단 안 예쁜 점?)가 생긴다는게 좀 그렇다 -_-;

 

git-gui 라는 tcl 기반의 GUI 프로그램이 추가로 주어지긴하는데, 잘 안된다(…). untracked 파일들에서 애가 계속 무한 루프를 돈다. tortoiseGit 이라는 tortoiseSVN  포팅판이 있는데 이 녀석은 어떨려나 ((그러고보니 xenosoz한테 이런게 있다고 얘기해주고 정작 나는 안써보고 있다)) 

 

ps. 사실 git 이란 툴 자체가 linux-kernel 쪽의 mainstream-maintainer 용으로 만들어지다 시피해서(개발자가 리누스 토발즈다) 신경 안쓰면 좀 괴롭기도하고 + 매뉴얼/예제도 상대적으로 부실하다. 덤으로 기본 동작이 가끔 이해 안가는 명령어도 존재하고. 그래도 쓰다보면 “이런게 있었으면”하던 것들이 있는건 좋다. 일단 앞으로 한 달 정도는 git을 SVN위에서 써보도록 해봐야겠다.

Jinuk Kim
Jinuk Kim

SW Engineer / gamer / bookworm / atheist / feminist

Articles: 935

3 Comments

  1. 같은 개념인데(의미이기도 하고), SVN이랑 git이 같은 SCM은 아니다보니, 둘 다 변경사항이 없는 상태(그러니까 특정 리비젼에서 변경없는 상태)에서만 서로 merge가 가능하다고 해야하나 -_-;;

    여튼 그렇게 돌더라고요;;

  2. 저는 그래서 머큐리얼을 써보려고 했는데, TortoiseHg가 제 예상만큼 예쁘지가 않아요… TortoiseSVN이 명작은 명작이에요.

Leave a Reply