메아리 저널

나는 개인적으로 hg를 주로 사용하고 git는 필요할 때만 사용하는데, hg 사용자 입장에서 git가 부러운 점이 하나 있다면 구현체가 꽤 많다는 점이다. 본래 git 구현은 물론 C로 짜여져 있지만, Git#이나 JGit처럼 별도의 구현체도 존재할 뿐만 아니라 hg용 hg-git 플러그인까지 존재하고 있다. 때문에 git를 다른 곳에 임베딩하거나 갖다 쓰기가 비교적 수월한 편인데, hg의 경우 내가 아는 한 파이썬 구현체 말고 다른 쓸만한 구현이 거의 존재하지 않는다. 물론 파이썬의 경우 Jython이나 IronPython 같은 것을 사용해서 돌리면 어떻게든 써 먹을 수는 있지만 한 단계를 더 거쳐야 해서 여러 가지 제약이 있을 수 밖에.

언젠가는 되어야 할 일이긴 한데, hg/git가 완벽하게 성숙하면 궁극적으로는 단일 구현체가 아닌 여러 구현체가 공유하는 공통의 프로토콜 및 파일 구조(이를테면 hg의 경우 revlogNG) 표준의 형태가 되어야 할 거라고 생각한다. 특히 hg에게 있어서는 파이썬에 얽매여 있다는 것이 실질적으로는 별 의미가 없음에도 일종의 제약처럼 작용하고 있는 것 같다. 때문에 hg에 독립 구현체가 아예 없다는 건 좀 아쉬워서 한 번 좀 만들어 볼까 잠깐 기웃기웃거려 봤는데, mercurial-devel 메일링 리스트에서 며칠 전에 revlog의 재구현체가 나왔다는 걸 알게 되고 이 인간들은 나랑 똑같은 생각만 하는 건가… 하고 좌절했다. orz 다행히도 이 쪽은 기존 파이썬의 revlog 속도를 개선하고자 하는 목적이고 라이브러리로 쓰이는 건 부수 효과인 것 같아서 내 목표와는 아주 충돌하는 건 아니다만. 좀 진행해 보고 뭔가 되는 것 같으면 더 자세히 써 보겠다.

덤: revlog 재구현체에 대한 글타래는 이 쪽을 참고.


노트들

  1. arachneng posted this
텀블러를 씁니다.