2009-12-08 40 views
1

這裏有人知道是否可以僅備份自上次備份(即: 增量)以來發生更改的 subversion reposiotory的一部分?Subversion:是否可以僅備份自上次備份以來的增量?

實際上,這可能類似於每隔 午夜進行一次完整備份,每小時增加一次增量。如果在11:07, 發生崩潰,則必須使用最後的中午完整備份,並對其應用所有增量 ,因此只會浪費7分鐘。如果這應該是可能的,那麼可以在「熱備份」 模式(如果這是它的正確術語)中進行,也就是說,當其他用戶 正在操作時,尤其是檢入時,在存儲庫上。

回答

5

這當然是可能的。您可以執行svnadmin dump -r(from_rev) --incremental以轉儲修訂版(from_rev)之後的所有更改(如果您省略了--incremental(from_rev)修訂版的內容將完全轉儲)。所有的提交都是原子的,所以你可以用這種方式進行熱備份 - 仍在進行的提交不會在這個轉儲中,而是在下一個。

+0

這是我正在採取的方法。我正在編寫一個python腳本來轉儲/加載,這將每隔一小時左右運行一次。這種方法唯一的缺點是它只捕獲提交(或其他更改),它不會捕獲存儲庫配置(或其他非修訂版更改事件)的更改。 – darrickc 2011-05-26 17:46:39

+2

或者,您可以考慮在post-commit掛鉤上使用svnsync:http://svnbook.red-bean.com/en/1.4/svn.ref.svnsync.html – darrickc 2011-05-26 17:54:19

0

使用rsync更簡單,可能幾乎同樣高效。除了存儲庫之外,rsync還具有可以做更多事情的好處。

+0

特別是對於fsfs文件系統,rsync工作起來非常漂亮爲了這。雖然在熱備份模式下它不是那麼好,因爲所有的鎖文件和中間文件也是rsync'd。 – Wim 2009-12-08 15:33:54