多线程提交到SVN

时间:2015-12-03 16:06:47

标签: svn svnkit

2个或更多线程是否可以使用相同的工作副本向SVN存储库添加和提交不同的文件?

我的程序适用于1个线程,但是2个线程给我svn异常,说工作副本被锁定或(当使用SVN工具包时)有一个事务没有完成。

我需要这个,因为我正在尝试从StarTeam迁移到SVN,并且我有数百万次提交,所以我需要尽快。

2 个答案:

答案 0 :(得分:1)

大多数SVN命令会锁定工作文件夹,因此您无法在多个线程中运行它们。如果命令更改了远程服务器,它们也不会并行运行,因为服务器会对请求进行排队。

如果subversion太慢,你应该看看像Mercurial或Git这样的分布式VCS。

[编辑] 如果您需要转换大型仓库,则应在计算机上创建一个本地仓库。这可以避免每次更改的网络延迟。提交现在应该非常快。在Subversion中重新创建整个历史记录后,导出存储库并要求服务器管理员导入它。

答案 1 :(得分:0)

重播“数百万”这样的提交需要花费太长时间。即使您在客户端上使用多线程,您的事务也会在服务器上序列化,如果您同时在服务器上抛出多个事务,则可以轻松地使事务无序 - 这只是一个问题,即首先到达哪个。

我无法说它的工作情况,但是Polarion有一个免费的conversion tool,可以从Starteam(和其他VCS)迁移到Subversion。我建议你从那里开始,或者使用另一个专用工具。

这些其他讨论也可以提供信息: