并行 SVN 更新过程



我需要在后台以相同的文件夹结构执行几个SVN更新过程,因为我有很多子文件夹并希望加快整个速度。

我的文件夹结构是这样的:

/folder/subfolder1/
/folder/subfolder2/
/folder/subfolder3/
...
/folder/subfolder1000/

我正在尝试在 bash 脚本中做这样的事情:

svn up /folder/subfolder1 &
svn up /folder/subfolder2 &
svn up /folder/subfolder3 &

问题在于SVN抱怨"/文件夹"被锁定,只有第一个任务完成正确,其他两个任务没有,并收到如下错误消息:

svn: Working copy '/folder' locked
svn: run 'svn cleanup' to remove locks (type 'svn help cleanup' for details)

有没有办法用几个并行的SVN进程以这种方式完成任务,因为一个一个文件夹(由其他进程选择)需要很多时间才能完成?

PS:我正在用高级编程语言(PHP-CLI)完成所有这些工作,但为了问题的简单性,我将其编写为bash脚本(遇到同样的问题)。

在旧版本的 Subversion 中,每个子目录都有自己的.svn文件。如果您的svn足够旧,并且您在子目录中运行命令,那么我认为这不会锁定父目录,并且命令可以并行成功。喜欢这个:

(cd /folder/subfolder1; svn up)&
(cd /folder/subfolder2; svn up)&
(cd /folder/subfolder3; svn up)&

虽然,老实说,我认为您的原始命令也应该有效,但我不明白为什么父目录被锁定。

相关内容

  • 没有找到相关文章

最新更新