我相信Wordpress會將多個帖子作爲「修訂」存儲,但我認爲這對空間的使用效率非常低下?Web應用程序的數據如何實現修訂/版本控制
有沒有更好的方法?我認爲gitit是一個使用GIT進行版本控制的Wiki,但它是如何完成的?例如。我的應用程序是在PHP中,我必須讓它與GIT交談來提交和檢索數據?
那麼,什麼是實現網絡應用程序的版本控制的好方法(例如,在博客中它可能是帖子的內容)
我相信Wordpress會將多個帖子作爲「修訂」存儲,但我認爲這對空間的使用效率非常低下?Web應用程序的數據如何實現修訂/版本控制
有沒有更好的方法?我認爲gitit是一個使用GIT進行版本控制的Wiki,但它是如何完成的?例如。我的應用程序是在PHP中,我必須讓它與GIT交談來提交和檢索數據?
那麼,什麼是實現網絡應用程序的版本控制的好方法(例如,在博客中它可能是帖子的內容)
我最近剛剛實現了這樣一個系統 - 它使用被取代的記錄的概念,以及以前和當前的鏈接。我對如何最好地實現這一點做了大量的研究 - 最終,我得到的模型與Wordpress(和其他系統)類似 - 將更改存儲爲新記錄並使用它。
考慮到所有可用選項,空間實際上是創作內容(如帖子)的最後關注點 - 媒體文件佔用更多空間,而且無論如何都不能將這些空間存儲爲增量。
在任何情況下,Git的工作方式實際上是相同的,因爲它爲每個修訂存儲整個內容,除了它最終會打包成增量(或者當您提出要求時)。
再回到1990年,我們使用SCCS或RCS和有時的自由,我們真正需要的版本控制磁盤空間只有30MB,以提高效率,避免存儲空間不足。
考慮到現代系統上可用存儲的平均數量,使用deltas節省空間並不是真的值得所有相關的加重。你可以認爲這是浪費的空間,但我要說,這是從長遠來看,以存儲在他們的原始形式的東西無壓縮高效得多
此外,標記不會像帶有增量值的純文本一樣好,尤其是使用wysiwyg編輯器進行編輯時。
保持一個表,最新版本的如文章。
保存新版本時,將當前的內容移到歸檔表中,並在其上放置版本號,同時將最新版本保留在第一個表中。
歸檔表可以具有屬性ROW_FORMAT = COMPRESSED(MySQL InnoDb示例)佔用較少的空間,並且它不會成爲性能問題,因爲它很少被訪問。是的,這不僅僅是存儲變更集的開銷,而且如果你做了一些數學運算,你可以在幾乎沒有空間的地方保留大量的修訂版,因爲無論如何你的文章都是高度可壓縮的文本。
例如,整個頁面的源代碼是11Kb壓縮的。這爲您提供了近1Mb的100個版本。相比之下,正常的文章比較小,平均可以在1Mb上給你500-1000篇文章/版本。你可能會負擔得起。
也許您需要指定您希望擁有VCS的級別。只需存儲兩個帖子版本或記住每個字母按下/刪除作爲一個單獨的修訂? – Kromster 2012-06-14 07:51:21
@KromStern,我想我會首先要存儲2個後期版本,如果可能的話,也許只是存儲更改。否則,存儲2個帖子將是trival。有差異功能將是一個有用的補充 – 2012-06-14 14:21:50