2013-12-16 58 views
0

我编写了一个控制台应用程序,它使用SharpSVN更新存储库中的3个文件夹。希望将其转换为批处理脚本以删除对SharpSVN的依赖。是什么导致SVN“工作副本<path>被锁定”?

想出了这个:

CD C:\Program Files\TortoiseSVN\bin\ 
START TortoiseProc.exe /command:update /path:"C:\AMG\trunk\AMG_AccountManager\AMC\Core" /closeonend:0 
START TortoiseProc.exe /command:update /path:"C:\AMG\trunk\AMG_AccountManager\AMC\Modules" /closeonend:0 
START TortoiseProc.exe /command:update /path:"C:\AMG\trunk\AMG_AccountManager\MW" /closeonend:0 

我发现this as an answer to another SO question。当我运行它时,我会从Tortoise弹出3个窗口。

一个人说:

Error: Working copy 'C:\AMG\trunk\AMG_AccountManager\AMC' locked.
Error: 'C:\AMG\trunk\AMG_AccountManager\AMC' is already locked.

中的第二个说:

Error: Working copy 'C:\AMG\trunk\AMG_AccountManager' locked.
Error: 'C:\AMG\trunk\AMG_AccountManager\AMC' is already locked.

,第三个成功更新模块文件夹。任何人都知道是什么导致前两个被锁定?

回答

4

您不能在同一个工作副本上执行三个同时更新操作。这是由设计决定的,而这正是工作副本锁定完成的。

如果你想使用TortoiseSVN,你必须使用start command/wait标志,并做更新逐一:

/等待:启动应用程序,并等待其结束。

如果你并不需要一个奇特的GUI你可以直接调用svn(假设你选择的命令行工具,当你安装了TortoiseSVN)。

+0

哦,我明白了。所以我只是喜欢'START TortoiseProc.exe /等待<我的原始文章中的其他一切>''? – sab669

+1

我自己没有尝试过。注意'/ wait'是'start'的标志,而不是'TortoiseProc.exe'。 –

+0

谢谢。我做了START /等待<所有其他事情>并且工作正常,但我必须在屏幕上点击“确定”,然后Tortoise才会更新下一个......不确定我是否喜欢这个比现有的控制台更多应用程序,只是做他们所有。再次感谢。 – sab669