2013-02-24 44 views
0

我正在研究一個小應用程序,允許我在每次更改之前修改文件和每個文件的版本。我希望應用程序執行的是唯一標記每個文件,以便每當打開相同的文件時,該特定文件的歷史記錄就可以恢復。我沒有使用任何大版本控制工具。我該如何在語法上做到這一點?我如何唯一標記文件並且它是多種版本?

+0

我很困惑,是你的問題如何編寫你自己的版本控制系統,讓您不必使用現有的? – 2013-02-24 18:33:08

+4

那麼你說你不*使用現有的版本控制解決方案 - 顯而易見的問題是「爲什麼不?」 - 我建議你嘗試使用Git,Mercurial或類似的東西。你不一定需要用服務器或類似的東西進行*集中式版本控制。當地的東西可能會很好。 – 2013-02-24 18:33:11

+0

我寧願讓我自己的代碼爲我做這件事。 – Kobojunkie 2013-02-24 18:52:10

回答

0

簡單的解決方案。使用已存在的verison控件(例如Git),但是如果你真的想這樣做,那麼試試這個。

每次創建一個新版本的文件的以前版本複製到一個單獨的隱藏的目錄,並在其中認爲文件的校驗和目錄中的配置文件。 Checksum將「更可能」是獨一無二的,因爲它的文件散列值(每次文件更改,校驗和會不同 - 你需要自己計算校驗和。)

當你打開一個文件時,檢查是否存在是目錄中的配置文件,並將校驗和與已打開的校驗和進行比較。如果它們是相同的,那麼你在同一個文件中。這就是它的工作原理。

你可以使用校驗和來優化它。因此,如果用戶進入文件改變了事情,就會變回原來的狀態並保存。校驗和應該返回相同的東西(除非你包括修改的日期和時間等)

每個文件夾應該有一個名稱,它遵循一個模式(filenameVn.n例如someTextFile.txt.v1.0),那麼你將能夠找出你在歷史中瀏覽的目錄應該說的是什麼。

另一種方法是簡單地一些標記複製的文件,並追加到它(校驗和可能?版本號?),那麼你就不需要額外的文件夾結束。

另一種方法是調用任何記錄的校驗文件並保存版本的歷史(連同相應的校驗)在一個單獨的配置文件,然後當你想要找出該文件提到它,你想要訪問被調用。因此,每個版本將被引用基於自己的校驗和(如在Git中)。

因此,總結每個文件版本將存儲在某個地方,你將能夠驗證它們是否相同(所以你可以優化通過避免存儲多個文件而不改變它們並浪費空間),並且您將能夠動態地確定每個版本的位置並訪問它。

希望它讓你如何開始多一點理解。

+0

有趣的解決方案 – Kobojunkie 2013-02-24 20:45:46

相關問題