2个或更多线程是否可以使用相同的工作副本向SVN存储库添加和提交不同的文件?
我的程序适用于1个线程,但是2个线程给我svn异常,说工作副本被锁定或(当使用SVN工具包时)有一个事务没有完成。
我需要这个,因为我正在尝试从StarTeam迁移到SVN,并且我有数百万次提交,所以我需要尽快。
答案 0 :(得分:1)
大多数SVN命令会锁定工作文件夹,因此您无法在多个线程中运行它们。如果命令更改了远程服务器,它们也不会并行运行,因为服务器会对请求进行排队。
如果subversion太慢,你应该看看像Mercurial或Git这样的分布式VCS。
[编辑] 如果您需要转换大型仓库,则应在计算机上创建一个本地仓库。这可以避免每次更改的网络延迟。提交现在应该非常快。在Subversion中重新创建整个历史记录后,导出存储库并要求服务器管理员导入它。
答案 1 :(得分:0)
重播“数百万”这样的提交需要花费太长时间。即使您在客户端上使用多线程,您的事务也会在服务器上序列化,如果您同时在服务器上抛出多个事务,则可以轻松地使事务无序 - 这只是一个问题,即首先到达哪个。
我无法说它的工作情况,但是Polarion有一个免费的conversion tool,可以从Starteam(和其他VCS)迁移到Subversion。我建议你从那里开始,或者使用另一个专用工具。
这些其他讨论也可以提供信息: