2009-06-30 51 views
5

我以前聽說在OS之間共享Subversion工作副本是不安全的。安全地共享操作系統之間的Subversion工作副本?

例如爲:

  1. 副本從Windows機器的工作拷貝到Linux機器,並使用Linux構建SVN的就可以了。
  2. 在Windows機器上,使用SVN的Windows二進制文件和CygWin二進制文件訪問/操作SVN工作副本。 (我可能想要這樣做,例如使用this solution)。

但是我還沒有確切地知道它是否會導致.svn數據的損壞。確實,如果svn:eol-style設置爲原生,則EOL問題可能會成爲問題。

這個問題的現狀是什麼?它在更新版本的SVN中有所變化嗎?如果採取了某些預防措施(例如,在兩個平臺上不使用svn:eol-style = native)檢查/更新文件,是否安全?

+3

我很好奇你爲什麼要複製存儲庫而不是僅僅簽入/簽出? – 2009-06-30 01:56:45

+0

首先,我在日本,並且在澳大利亞有一個2 GB的回購站,通過128 kbps的公司鏈接。 但在問題的性質2中,也涉及使用CygWin工具就地訪問工作副本。 – 2009-06-30 02:27:06

+0

我在旅行時複製了存儲庫(基於文件),對於我單獨工作的項目,然後將其複製回來。雖然我還沒有去過跨OS的遊戲。 – 2009-06-30 02:32:43

回答

5

我已經在unix,linux,solaris和windows之間的共享網絡目錄上使用了svn;有趣的是,我遇到的唯一問題是不同的svn客戶端版本是'incompatable'。 linux和unix機器配有svn版本,然後是solaris svn;這反過來又是windows機器客戶端的老大。結果是運行'svn up'將元數據文件更新爲任何正在運行的客戶端;並且客戶端將不會訪問具有更新近的元數據版本的文件。最終的結果是svn客戶端應該保持在相同的版本號。

所以,是的,我已經能夠在機器之間移動一個工作目錄,並且損失最少。也就是說,我從來沒有使用任何超過默認值的svn選項。

1

我的svn倉庫在Linux上。我在Linux上有一個工作副本,在WindowXP上有另一個副本。

在WindowXP上,我使用cygwin來訪問我的工作副本。有時,我也用龜龜有一個視覺比較,一個文件的一個compplete歷史...

我從來沒有嘗試從svndump創建的Linux存儲庫到Windows計算機恢復(或創建形式的備份)。

[編輯]

我忘了提及更新與兩個工作副本的完美作品。

1

從我的經驗,它的作品。

有時對於Windows和Linux之間的區分大小寫雖然問題。文件夾「構建」和「構建」碰撞和諸如「.htaccess」之類的東西。但沒有什麼難以解決的。

1

正如CoderTao提到的,使用不同版本的工作拷貝SVN(客戶端)可引起沉默WC格式的升級,所以一定要單一版本家族中堅持避免這種情況。

順便到你的主要問題,我看到與您通過慢速鏈接SVN回購工作。您可能想要查看爲此類設計而設計的分佈式源代碼管理系統。作爲一個例子,Bazaar(bazaar-vcs.org)有一個bzr-svn插件,它允許你創建一個遠程SVN倉庫的本地分支。然後您可以擁有一個快速的本地分支,您可以在多個地點查看,在當地工作,區別,瀏覽歷史記錄等。您可以在本地進行提交,並保持您的單獨本地(日本)分支同步,而無需向澳大利亞提交緩慢提交。一旦一切順利,你就可以將你的改變推回SVN。如果您有興趣,Bazaar wiki上有許多工作流程示例文檔。 :)

1

除了其他的答案(因爲他們似乎認爲這是可行的),我可以明確地報告共享工作副本(在我們的案例中通過Samba共享),我們有「svn:eol-style native」使用確實對我們造成問題,我們儘量避免它。

如果我們需要在機器之間複製一個工作文件夾(一種更爲有限的共享形式,可能是一次性操作),我們期望不得不進入CRLFTOLF轉換,並對所有svn:eol-style文件,事實上我們過去通過編寫一個實用程序來遍歷樹,檢查svn屬性以及根據需要轉換文件(全部使用Python)來完成。

因此,爲了記錄,我會明確指出,這一個問題。

相關問題