2008-11-30 62 views
3

你知道Subversion如何在隱藏的.svn文件夾中存儲已簽出的每個文件的副本?我正在建設的網站相當大(有超過1G的PDF文件)。這些PDF文件在網站的整個存在期間將很少發生變化。Subversion的隱藏修訂文件

我不知道是否有告訴顛覆的一種方式,它不應該存儲一組特定的文件的本地副本修改(我的PDF文件),但只是每當一個變化是任何作出的服務器同步這些文件?

回答

3

Subversion使用.svn文件夾中的版本能夠將新文件與舊文件進行比較,並將差異發送給Subversion服務器。

因此,沒有,有沒有辦法沒有.svn目錄裏的文件,仍然允許你提交這些文件

1

您可能需要考慮使用svn export而不是結帳來管理網站的「實時」副本。這將完全避免.svn文件夾中的大文件問題。

你的工作流程可能是這樣的:

  1. 編輯本地的文件,測試在測試部署
  2. 提交更改到存儲庫
  3. 運行從倉庫到現場系統
一個 svn export

這樣做的缺點是,在此期間可能對現場系統進行的任何更改都會被覆蓋。但是,您可以安排工作流程以避免這種情況。

實際上,在我看來,我不知道您是否在工作簽出或服務器部署中擔心這些隱藏的PDF文件。如果它在您的工作結賬中,那麼我不知道使用Subversion來避免這些文件的方法。但是,如果您使用Git與git-svn,那麼Git將管理其自己的壓縮歷史記錄,而不會完整複製所有文件。

+0

我的網站完全部署通過svn更新工作。從離線託管的svn存儲庫導出數據對我來說似乎不是個好主意。無論如何感謝您的回覆。 – Luke 2008-11-30 23:02:08

2

一個不同的想法:如果你使用Bazaar + bzr-svn或者Git + git-svn,他們會保留一個更加節省空間的工作副本,你仍然可以直接從你的倉庫進行更新。

+0

目前還不是我的選擇。 – Luke 2008-11-30 23:03:39

1

至於格雷格說,使用SVN出口 - 但做SVN出口到本地目錄,然後將本地目錄rsync同步到遠程站點。

這會得到(a)沒有.svn目錄和(b)僅從本地系統發送更改到遠程的組合。

如果Greg和orip建議使用'git-svn'進行遠程結賬,那麼做不到這一點。它在svn導出佔用的空間上仍然有一定的開銷,但是它會少於一個完整的svn工作副本。