我想弄清楚我們是否需要減少擁有svn管理員權限的開發人員數量。svn刪除後可以恢復文件嗎?
1 - 如果顛覆用戶意外刪除並提交文件或文件夾的刪除,該文件如何恢復?
2 - 如果subversion用戶擁有svn管理權限,那麼在客戶端上執行的svn delete會有不同的表現(更持久)嗎?
目標:下紅帽企業Linux(RHEL)5.2
我想弄清楚我們是否需要減少擁有svn管理員權限的開發人員數量。svn刪除後可以恢復文件嗎?
1 - 如果顛覆用戶意外刪除並提交文件或文件夾的刪除,該文件如何恢復?
2 - 如果subversion用戶擁有svn管理權限,那麼在客戶端上執行的svn delete會有不同的表現(更持久)嗎?
目標:下紅帽企業Linux(RHEL)5.2
是,被刪除的數據可以恢復。只需確定哪個版本刪除了信息,然後「反向合併」提交。例如:
svn merge -c -12345 working_copy_path
svn commit working_copy_path
-12345表示「反向合併修訂版本12345」。
請注意,顛覆本身並沒有任何「管理」用戶的概念。用戶對存儲庫中的任何給定路徑具有讀取和/或寫入權限。另請注意,根據您訪問存儲庫的方式,可能根本沒有授權。
馬克, 謝謝你的簡潔明瞭的答案和提供的例子。 我一直誤解有關「行政」svn用戶及其危險的概念。聽起來主要的危險來自svn服務器的管理員,而不是svn用戶。 我什麼都不懂,可以從SVN客戶端來完成(服務器管理員權限沒有連接到他們的SVN用戶權限)可以通過指向回到一箇舊的版本未完成。 再次感謝, – 2010-08-31 13:33:36
@Ed:你當然歡迎。 – Mark 2010-08-31 14:38:55
只是檢出修改該文件仍然存在:
svn checkout -r <revision> <path to repository>
現在,您可以再次添加的文件。
請參閱我對timdev的回答的評論。反向合併更改會保留相關文件的歷史記錄。 – Mark 2010-08-30 20:20:37
的「使用Subversion版本控制」一書從恢復刪除的深入討論可以在這裏找到:
謝謝你所有的好答案。 我明白任何一個svn客戶端只是做了一個新的修訂,並且所有以前的修訂仍然可以訪問。我的錯誤是將svn服務器管理員權限(破壞力)與svn用戶權限(非破壞性)混淆。確保服務器已備份。 :-) – 2010-08-31 13:38:15