2010-04-19 117 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问题。

这是所有的谣言。