본문으로 건너뛰기
피드

Magit과 Majutsu: 발견 가능한 버전 관리 인터페이스

open-source 약 4분

Magit(Emacs용 Git 인터페이스, 2008년 시작, v4.5.0, Git 기능의 약 90% 커버)과 Majutsu(Jujutsu용 Magit 스타일 인터페이스, 2025년 11월 시작, v0.6.0)를 비교 소개. 트랜지언트 윈도우 기반 키보드 조작으로 발견 가능한 설계를 지향함.

  • 1

    Magit: v4.5.0, Git 기능의 약 90% 커버. 트랜지언트 윈도우로 키보드 기반 Git 조작. 컨텍스트 감지로 커서 위치에 따라 동작이 달라짐

  • 2

    Jujutsu: Git 호환 VCS. 스테이징 영역 없이 항상 현재 작업 커밋을 직접 편집. 리베이스를 거쳐도 안정적인 커밋 식별자 사용

  • 3

    Majutsu: 2025년 11월 시작, 6명 기여, v0.6.0. Magit 라이브러리를 재사용. 트랜지언트 윈도우 25개(Magit은 37개). 리베이스가 더 시각적이고 간소화됨

  • 4

    거친 부분: 클론 시 중첩 리포 문제, Git 임포트 전 커밋이 로그에 표시되지 않는 문제

Magit: Git의 Emacs 인터페이스

Magit은 2008년 Marius Vollmer가 시작한 Emacs 패키지로, 현재 v4.5.0임. 주요 기여자는 Jonas Bernoulli이며, Git으로 할 수 있는 것의 "약 90%"를 커버한다고 함.

핵심 설계는 트랜지언트 윈도우를 통한 키보드 기반 조작임. "d"를 누르면 diff 관련 옵션이 뜨고, 초록색 글자가 적용 가능한 플래그를 보여줌. 한번 설정한 플래그는 리셋할 때까지 유지됨. 같은 글자를 한 번 더 누르면 "내가 의미하는 것을 해라(do what I mean)" 방식으로 커서 위치에 맞는 합리적인 동작을 수행함.

컨텍스트 감지가 잘 되어 있음:

  • 커서가 커밋 위에 있으면 dd가 해당 커밋의 diff를 보여줌
  • 커서가 스테이징되지 않은 파일 위에 있으면 dd가 스테이징 영역 대비 diff를 보여줌
  • diff 안에서 특정 hunk에 커서를 놓고 s를 누르면 해당 hunk만 스테이징됨
  • 모든 Magit 버퍼가 자동 동기화됨. "?"를 누르면 모든 키 목록을 볼 수 있음

Jujutsu: Git 호환 버전관리 시스템

Jujutsu는 Git 호환이면서 개념 모델을 단순화한 VCS임. Git과의 가장 큰 차이는 스테이징 영역이 없다는 것. 항상 현재 작업 커밋("@")을 직접 편집하는 방식임.

Majutsu: Jujutsu의 Magit 스타일 인터페이스

2025년 11월 Brandon Olivier가 시작했고, 기여자 6명, 현재 v0.6.0임. Magit의 라이브러리를 재사용하므로 인터페이스 작동 방식은 거의 동일함. 트랜지언트 윈도우는 25개로 Magit의 37개보다 적은데, Jujutsu 자체 명령어가 더 적기 때문임.

Git과 다른 점이 UI에 반영되어 있음:

  • 커밋 해시 대신 커밋 식별자를 표시함. 이 식별자는 리베이스를 거쳐도 안정적이라 히스토리 수정 중에도 커밋을 명확히 참조 가능함
  • 색상이 있는 글자가 최소 고유 접두사를 나타냄. 예를 들어 "rkrmpkzv"를 "r" 한 글자로 참조 가능(같은 글자로 시작하는 다른 커밋이 없을 때)
  • 리베이스가 더 시각적임. Magit에서는 r r 후 시작 리비전 선택 → 인터랙티브 리베이스 워크플로우를 거치지만, Majutsu에서는 상태/로그 윈도우에서 커밋을 직접 선택하고 엔터를 누르면 됨

거친 부분

  • 클론이 좀 혼란스러움. Jujutsu 리포 밖에서 실행하면 경고가 뜨고, 리포를 만든 후 클론하면 하위 디렉토리에 중첩 리포가 생김
  • Jujutsu의 log 명령이 Git 리포를 임포트하기 전의 커밋을 보여주지 않음. colocated 모드에서 이후에 Git으로 만든 커밋은 표시되지만, 전환 과정이 어색함

Jujutsu가 Git의 지배력에 맞서려면 진입 장벽을 낮추는 게 핵심인데, Majutsu 같은 발견 가능한 인터페이스가 그 역할을 할 수 있음. Magit의 라이브러리를 재사용해서 빠르게 기능을 확보한 것도 영리한 전략임.

댓글

댓글

댓글을 불러오는 중...

open-source

뱀부랩, 오픈소스 슬라이서 개발자에게 법적 압박 걸었다가 역풍 맞음

3D 프린터 제조사 뱀부랩이 OrcaSlicer-BambuLab 개발자에게 중단 요구서를 보내면서 오픈소스와 수리권 커뮤니티의 반발을 샀다. GamersNexus와 Louis Rossmann은 개발자의 허락을 받아 소프트웨어를 다시 호스팅하고, 소송이 걸리면 각각 1만 달러씩 법률 지원을 하겠다고 나섰다.

open-source

OrcaSlicer 포크, Bambu Lab 프린터의 인터넷 연결 기능 되살림

FULU Foundation의 OrcaSlicer-bambulab 포크가 Bambu Lab 프린터에서 LAN 전용 제한 없이 BambuNetwork 기반 인터넷 연결을 다시 지원한다고 밝힘. Windows에서는 WSL 2 설정이 필요하고, Linux에서는 일반 설치만으로 충분하다고 안내함.

open-source

코넬대가 공개한 정확히 2,000줄짜리 교육용 운영체제

코넬대 기반 프로젝트인 egos-2000은 학생이 교육용 운영체제 전체 코드를 직접 읽을 수 있게 만드는 걸 목표로 한다. C, 헤더, 어셈블리, make 파일을 합쳐 정확히 2,000줄이며, QEMU와 RISC-V 보드에서 동작하고 9개 코스 프로젝트가 붙어 있다. 운영체제 수업에서 ‘작지만 전체 구조가 보이는 코드베이스’가 필요했던 사람에게 꽤 반가운 자료다.

open-source

이맥스가 Git 대신 Bazaar를 붙잡았던 6년짜리 오픈소스 드라마

이맥스는 2008년 CVS에서 벗어나면서 Git 대신 GNU 프로젝트인 Bazaar를 선택했고, 이 결정은 성능 벤치마크와 개발자 반발을 압도한 정치적 판단에 가까웠다. Bazaar는 느리고 유지보수도 흔들렸지만, GNU 패키지는 GNU 도구를 써야 한다는 원칙 때문에 전환은 2014년까지 미뤄졌다. 결국 ELPA 브랜치 문제와 Bazaar 개발 중단, 변환 스크립트 준비 끝에 이맥스는 Git으로 옮겨갔다.

open-source

현대차·기아, 오픈소스 특허 방어망 넓혀 소프트웨어 중심 차량 전환 준비

현대차·기아가 오픈소스 소프트웨어 특허 분쟁을 줄이기 위해 글로벌 특허 네트워크 OIN 2.0에 가입했다. 소프트웨어 중심 차량, 클라우드, 커넥티드 서비스처럼 오픈소스 의존도가 큰 영역에서 법적 리스크를 미리 관리하려는 움직임이다.