🌘 再談版本控制
➤ 邁向更可靠的版本控制:從「手動重寫歷史」到結構化自動演進
https://bramcohen.com/p/more-on-version-control
Bram Cohen 在本文中深入探討了他在版本控制系統領域的新構想。他指出,目前的 Git 雖然強大,但在「變基」(rebase)和「壓縮」(squash)操作時,往往會人為抹除歷史記錄,甚至產生錯誤風險。他提出了一種結合 CRDT(無衝突複製資料型別)與結構化錨定演算法的解決方案,透過在提交時鎖定差異(diffs),實現更安全且自動化的合併機制。這種方法能完整保留歷史脈絡,並將衝突處理視為時間軸上的更新同步,為開發者提供更直觀、可靠的版本控制體驗。
+ 很有啟發性。Git 的 rebase 確實經常讓人覺得是在「竄改歷史」,如果有一個系統能在保持自動化處理的同時,又具備嚴謹的歷史審計能力,那將是開發者的福音。
+ 對於「壓縮(squash)」操作的定義很有趣。目前多數系統確實把它當作刪除歷史的手段,但如果能像文中提到的那樣保留完整的演化過程,確實能減少
#軟體工程 #版本控制系統 #Git #CRDT
More on Version Control

This may have some legs

Bram’s Thoughts

Nice little G-Counter

```
% hare run cmd/counter.ha 1 /tmp/crdt1.sock 1
4/4 tasks completed (100%)
waiting for 1 peer(s)...
all peers connected
...
node 1: counter = 15
node 1: counter = 17
node 1: counter = 19
node 1: counter = 20
```

```
% hare run cmd/counter.ha 2 /tmp/crdt2.sock 1 /tmp/crdt1.sock
connected to /tmp/crdt1.sock
waiting for 1 peer(s)...
all peers connected
...
node 2: counter = 14
node 2: counter = 16
node 2: counter = 18
node 2: counter = 20
```

#HareLang #CRDT

Conflicted Copies: If you edit files on multiple machines while one is offline, #Nextcloud /#Syncthing will create conflict files, requiring manual resolution.
Direct Editing Lag: Editing files directly on a slow remote server (without local sync) can cause high latency within Emac
Yes these re problems or #orgzly there s to be some way to use #crdt with it

Been neck deep in CRDTs over the past few days.

#HareLang #CRDT

🌗 Manyana:版本控制未來的願景
➤ 告別三向合併的噩夢:以 CRDT 重構版本控制的邏輯
https://bramcohen.com/p/manyana
比特幣發明人 Bram Cohen 發表了名為 Manyana 的開源專案,旨在解決現有版本控制系統(如 Git)在處理合併衝突時的痛點。該專案基於無衝突複製資料類型(CRDT),徹底改變了傳統 VCS 依賴三向合併(3-way merge)的做法。Manyana 的核心優勢在於將衝突視為「資訊展示」而非「系統中斷」,並透過保留檔案變更的完整結構歷史,實現了始終能成功合併的開發流程。儘管目前仍處於單檔案操作的原型階段,但它為下一代版本控制工具提供了一個兼具穩定性與直覺 UI 的技術願景。
+ 這正是我們需要的!Git 的三向合併在處理大型多人專案時,經常產生令人費解的衝突,如果能直接看到具體的增刪邏輯,將大幅減少開發者的心智負擔。
+ 將歷史視為「織網(weave)」結構的思路非常大膽。雖然目前還只是個 Python 原型,但這種「合併永不失敗」的設計理念,極有可能改變未
#軟體開發 #版本控制 #CRDT #技術創新
Manyana

A Coherent Vision for the Future of Version Control

Bram’s Thoughts
I'll be honest: I'm procrastination on the gaps and layers stuff which is a lot of going through the different cases of resizing, moving, adding and deleting clips with and without ripple editing turned on. There's also potentially spooky #CRDT stuff involved. Help

Что больнее OT или CRDT в совместном редактировании? И почему до сих пор нет идеала?

Привет, Хабр! Меня зовут Антон Леонтьев, я старший разработчик в команде ядра

https://habr.com/ru/companies/ncloudtech/articles/1009742/

#collaboration #мойофис #мойофис_документы #мойофис_текст #редакторы #редактирование #ot #crdt

Что больнее OT или CRDT в совместном редактировании? И почему до сих пор нет идеала?

Привет, Хабр! Меня зовут Антон Леонтьев, я старший разработчик в команде ядра редакторов МойОфис . Мы создаём офисные приложения, которыми ежедневно пользуются более 12 500 организаций, и совместное...

Хабр

Currently working on a feature to preview changes in the #MiruVideoEditor without syncing so that:

- users are less likely to get confused by clips flashing between their and someone else's changes (in theory)
- fewer ephemeral #CRDT updates are sent between users
- we can more easily have an [Esc] key to cancel current drag/resize, or close a dialog without applying changes
- we can use the same preview system with a lightweight real-time API for live changes from other clients

An Interactive Intro to CRDTs | jakelazaroff.com

CRDTs don't have to be all academic papers and math jargon. Learn what CRDTs are and how they work through interactive visualizations and code samples.

CRDTs replicate data so edits merge cleanly without conflicts.

#crdt #replication #collaboration