2010-05-31 34 views
2

什麼是Unix程序在文本文件之間生成「差異」(或 數據庫的INSERT/UPDATE/DELETE),使得「差異」的應用順序是無關緊要,其結果與 相同,無論順序如何。數據庫的交換(操作轉換)差異

Etherpad用來做這樣的事情。

實施例(對於給定的文檔或數據庫):

%亞當作出改變X,則鮑勃作出改變Y,然後使亞當另一個 改變Z.

%。然而,因爲網絡的亞當看到這個 命令中的變化:XZY,而鮑勃以這種順序看到它們:YXZ。

%但是,代碼/更改被寫入,以便XYZ和YXZ產生相同的結果 。

注意:理想情況下,無需在任何 點處進行X/Y/Z反轉即可完成此操作。

我已閱讀Operational Transformation library? 但我不確定這是否確實如我所願。

+0

OT當然是你在做什麼之後,特別是要獲得你想要的「XYZ == YXZ」。我剛剛添加了一個問題的答案,你可以幫忙,儘管Ceda目前沒有* nix端口。 – 2010-07-28 07:55:18

回答

0

Git(或任何智能版本控制系統)將提供此功能。

+0

我沒有想過,但我認爲你是對的。除此之外,我們是逐字逐句地逐字逐句(而且使用「diff」的優化版本來發送deltas?)。 好吧,我們如何做到這一點瓦特/一個SQL數據庫,短缺作爲文本文件存儲? – barrycarter 2010-05-31 02:37:59