Obs156|懶人式版本控制+差異式備份:diffzip-Differential ZIP Backup

筆記需要做版本控制嗎?我覺得凡是與創作、書寫相關的產出都需要版本控制,你永遠不會知道今天寫下的文字,會否有需要追溯內容演變的需要。

要對筆記做好版本控制最理想的是使用版本控制系統,例如Git,使用程式開發時用來管理程式版本的工具。但如果不熟悉Git,或想用更簡單的方式、更自動化的步驟來達,那麼 diffzip 外掛可以一試。

[!WARNING]+ 警告
使用diffzip後,偶爾有遇到Obsidian衝高CPU使用率的狀況,幾秒後恢復正常

1. diffzip功能

第一次執行diffzip時,它會將儲存庫裡所有筆記壓縮到切始ZIP檔,同時在備份資料夾裡產生一個backupinfo.md來記錄筆記的檔案異動時間,之後的筆記變動使會以差異式的方式再產生到新的ZIP檔裡。

[!danger] 警告
backupinfo.md 勿自行修改,以免影響備份操作。

亦即只有第一個ZIP檔會有備份時當時的所有筆記,第二次以後的只會備份新增與變動的筆記。這樣不會每次都產生大檔,能節省硬碟空間,也能快速還原某個需要的檔案。

由命令面板執行 Create Differential Backup 則會立即備份有變動的檔案。

2. 設定

  • 建議啟用執行Obsidian時自動備份的功能,讓所有的變動都能自動的被記錄到而不會遺漏。
  • Include hidden folder:建議不啟用以略過.obsidian、.git等資料夾

3. 備份歷程

查看 backupinfo.md 即可觀察某個筆記的備份歷程,還原時可過濾出有備份該檔的ZIP檔:

▼ 範例

test.md:
  digest: dee824d7f626a1fc3ead477aeccf724718192fac37943d4245d144287b447d03
  filename: test.md
  mtime: 1709991840889
  history:
    - zipName: 2024-3-8-42820.zip
      modified: 2024-03-07T14:00:00.000Z
    - zipName: 2024-3-8-43824.zip
      modified: 2024-03-08T04:08:31.193Z
    - zipName: 2024-3-9-78930.zip
      modified: 2024-03-09T13:44:00.889Z

4. 還原

由命令面板執行 Restore from backups 可以還原則備份檔案到指定資料夾。

  1. 先選擇要還原的筆記檔案檔名
  2. 選擇要使用那個ZIP檔
  3. 指定要還原的位置:
    1. 還原到設定好的 restored 資料夾
    2. 還原並覆蓋現有的筆記
    3. 還原到筆記原有位置,檔名附加ZIP檔的檔名(例如test.md還原為test-2024-3-8-42820.md)

gh|700

  1. 若還原到 restored 資料夾或帶ZIP日期檔名時,可使用Beyond Compare或WinMerge等工具比對與合併內容等操作

5. 🙋‍♂️有問題...

隨著備份檔越來越多,佔用的磁碟空間也越來越多,如果儲存庫是使用雲端硬碟同步,則需要思考如何減少佔用空間。

可用的方法是將backup資料設定成符號連結,雲端硬碟通常不會同步資料夾連結(Dropbox就不會同步)。

對於版控的需求:如果能使用Git的話,Git會是更完整的解決方法。

6. 相關鏈接

✅ diffzip: https://github.com/vrtmrz/diffzip

7. 教學影片

##

您可能也會有興趣的類似文章

您可能也會喜歡…

2 個回應

  1. Terry表示:

    多謝分享✌✌✌

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *