정말... 로컬에서 마이크로커밋 하라면서 정작 스쿼시로 날려버릴 때 “왜??????????” 라고 생각한 적이 있다.
https://hackers.pub/@bgl/0195bda7-f18d-72eb-8933-81e819715410
그동안(10+년;;) git이 엄청 잘만든 물건 같지는 않다고 생각하며 대충 쓰고있었는데, 요즘 branch 개념 자체가 근본적인 실수란 생각이 들기 시작했다. branch 대신에 변경의 시작과 끝, 양 끝점을 가지는 interval을 쓰는게 맞는거 같다(카테고리 이론의 작은 교훈: primitive는 양 끝점을 가지는게 좋다).
git을 쓰면 히스토리 길어진다고 squash merge 등을 하는데, (나도 하지만) 사실 기껏 만들어놓은 히스토리를 뭉개버리는 말도 안되는 동작이다. 만약 interval을 쓴다면 히스토리는 그대로 남기고 UI 단에서 fold/unfold 등을 해줄수 있을 것이다.
Darcs 등이 interval에 기초하는데, 지금은 일이 너무 바빠서 시도할 여유가 없다. 한번 숨고를 시간이 주어지면 멀쩡한 VCS를 탐색하는 시간을 가질것이다.
정말... 로컬에서 마이크로커밋 하라면서 정작 스쿼시로 날려버릴 때 “왜??????????” 라고 생각한 적이 있다.
https://hackers.pub/@bgl/0195bda7-f18d-72eb-8933-81e819715410