2010-04-19 134 views
3

我正在致力於一個應用程序,其主要目的是提供源代碼管理。我的想法是使用SVNKit進行文件簽出和簽入。但是,在與SVNKit合作時,我意識到它沒有我期待的速度。例如,每當開發人員創建一個ChangeRequest(可以包含3-40個文件中的更改)時,我必須創建一個分佈在32個文件夾中的目錄結構。這樣做大約需要50秒,另一個例子是在創建變更請求後,開發人員可以將文件添加到請求中。從Trunk複製一個文件到分支需要大約6-7秒。 我的問題是有沒有人有這樣的經驗,你做了什麼來提高性能?而且,我的方法是否正確?顛覆版本控制

注意:我使用「http」協議並且不能使用「svn」協議。

+0

您是否試圖找到您所看到的表現的原因?服務器/客戶端上的CPU/RAM,網絡吞吐量...? – 2010-04-19 08:16:11

回答

1

一般SVNKit是完整的Java 實現的顛覆。是的,它比原生的慢得多。因此,如果您不限於Java Only代碼,您可以嘗試:

  • 使用本機SVN C API。
  • 使用SVN Java綁定

富勒更多信息,請閱讀:http://svnbook.red-bean.com/en/1.5/svn.developer.usingapi.html 盒子 「SVNKit對戰javahl」

還要注意...協議對性能(真的)幾乎沒有影響。

0

我不知道詳細信息(什麼類型的文件,單個文件有多大?),但是SVN並不那麼慢。

我們在這裏使用它,工作正常。

只是好奇,您的SVN服務器託管在哪裏?您的網絡內部還是外部?由於網絡原因可能會很慢?

+0

我在客戶位置,所以它在網絡內。但對於非客戶位置的人來說,這會讓事情變得更慢。 您能告訴我在網絡中通常需要多少錢: 1.在存儲庫中創建一個文件夾。 2.將文件從存儲庫複製到存儲庫。 – 2010-04-19 05:32:41

+0

我會說,提交時需要1-2秒左右的空文件夾。如果文件夾中有大量文件,則需要一些時間才能添加這些文件,然後進行提交。 將文件複製到分支,我直接在服務器上執行,而不是在本地複製然後提交。 我使用svn命令行工具。 – 2010-04-19 05:40:04

-2

這確實是沒有太大的信息,主要是通過向前闢謠:

  • SVN有結垢嚴重的問題,因爲用戶數量到三位或四位數字。人們傾向於複製副本,並且有一些糟糕的縮放選項。
  • PerfForce是商用產品,沒有縮放問題。
  • GIT沒有縮放問題,雖然它很容易被破壞。
  • Mercurial運作良好,規模良好。然後,有人的大馬出現,並檢查非常大的文件中的酒吧。它也有CR/LF問題。

這是所有的謠言。