# 오픈소스 분산 버전 관리 시스템 Pijul 1.0 베타 공개

> Clean Markdown view of GeekNews topic #5793. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=5793](https://news.hada.io/topic?id=5793)
- GeekNews Markdown: [https://news.hada.io/topic/5793.md](https://news.hada.io/topic/5793.md)
- Type: news
- Author: [xguru](https://news.hada.io/@xguru)
- Published: 2022-01-21T09:11:23+09:00
- Updated: 2022-01-21T09:11:23+09:00
- Original source: [pijul.org](https://pijul.org/posts/2022-01-08-beta/)
- Points: 7
- Comments: 3

## Topic Body

- 패치 이론을 기반으로 하면서도 속도가 빠르고 확장 가능

- Commutation

ㅤ→ 각각의 변경들이 버전id를 바꾸지 않으면서 순서 상관없이 적용 가능

ㅤ→ git rebase 나 hg transplant 보다 훨씬 간단한 워크플로우

ㅤ→ branch 와 비슷한 channels 기능이 있지만 다른 시스템에서 처럼 중요한 것은 아님. 예를 들어 feature 브랜치는 Pijul 에선 그냥 변경임

ㅤ→ 히스토리를 깔끔하게 유지하는게 기본 설정

- Merge correctness

ㅤ→ Pijul은 Merge 시에 몇가지를 보장

ㅤ→ 가장 중요한 것은 라인의 순서가 항상 유지 된다는 것. 가끔 라인이 뒤섞이는 3way 머지와 다름

ㅤ→ 순서를 알 수 없는 경우(동시 편집하는 경우처럼) Conflict가 되며, "Automatic" 또는 "No Conflict" 가 되는 시스템과의 차이점

- First-class conflicts

ㅤ→ Pijul에서 Conflict는 "머지 실패"가 아니라 표준 사례로 모델링 됨

ㅤ→ 특히, 두 변경간에 발생하는 Conflict는 하나의 변경 으로 해결 됨

- Partial Clones

ㅤ→ Commutation을 이용하면 저장소의 작은 하위 집합만 복제 가능. 실제로 그 하위 집합에 대한 변경들만 적용하는 것도 가능

ㅤ→ Partial Clone에 대한 작업은 대규모 저장소에 쉽게 보낼수 있는 Changes를 생성함

## Comments



### Comment 13605

- Author: maxn0d3
- Created: 2022-12-05T18:08:34+09:00
- Points: 1

Git 솔직히 현업에서 표준이라 쓰긴하지만 굉장히 불편했음 ㅡㅡ Rust기반 피줄로 조금씩 갈아타야할때임

### Comment 8527

- Author: galadbran
- Created: 2022-01-21T09:42:01+09:00
- Points: 1

svn과 git 의  (분산저장소라는걸 빼고) 가장 큰 차이가 svn은 diff 를 관리하는데 반해 git은 스냅샷을 관리한다는 점인데  패치 이론이라고 하니 왠지 diff를 관리하는 쪽일 것 같다는 생각이 드네요.

### Comment 8524

- Author: xguru
- Created: 2022-01-21T09:11:30+09:00
- Points: 3

패치 이론(Theory of Patches)는 분산 버전 관리시스템인 Darcs 에서 보시면 됩니다.

- https://en.wikibooks.org/wiki/Understanding_Darcs/Patch_theory

Darcs 와 Git 을 비교할때 이렇게 설명합니다.

A set of changes that you record in Git is called a “commit”, while in Darcs it is called a “patch”.

- http://darcs.net/DifferencesFromGit
