使用提交后挂钩时 TortoiseSVN 挂起

发布于 2024-11-23 15:19:35 字数 237 浏览 2 评论 0原文

当我在 VisualSVN 存储库上使用提交后挂钩时,TortoiseSVN 在“发送内容”时挂起(冻结)。以下是钩子:

cd C:\Sysinternals\

PsExec \\\OtherComputer TortoiseProc /command:update /path:"C:\MyPath\" /closeonend:4

内容已发送,但需要本地更新或被标记为过时。有什么想法吗?

TortoiseSVN hangs (freezes) on "Sending content" when I use a post-commit hook on my VisualSVN repository. The following is the hook:

cd C:\Sysinternals\

PsExec \\\OtherComputer TortoiseProc /command:update /path:"C:\MyPath\" /closeonend:4

The content is sent, but a local update is required or it is marked as out of date. Any ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

幸福不弃 2024-11-30 15:19:35

挂钩脚本必须首先完成才能使提交成功。所以客户必须等待。如果您的挂钩脚本花费的时间太长或根本没有完成,那么提交似乎会挂起。
您可以尝试在单独的进程中启动挂钩脚本中长时间运行的命令,以便挂钩脚本本身立即完成。

但是:如果 OtherComputer 是您尝试提交的计算机,并且脚本尝试更新完全相同的工作副本,那么这也无济于事:更新必须等到提交完成,但提交会等待钩子脚本运行更新来完成 - 你遇到了死锁。

The hook script has to finish first to make the commit succeed. So the client has to wait for that. If your hook script takes too long or doesn't finish at all, then the commit appears to hang.
You can try to start the long-running command in your hook script in a separate process so that the hook script itself finishes immediately.

However: if OtherComputer is the computer you're trying to commit from and the script tries to update the very same working copy, then that won't help either: the update has to wait until the commit is finished, but the commit waits for the hook script running the update to finish - you've got a deadlock.

小帐篷 2024-11-30 15:19:35

这看起来像一个本地钩子。我认为你不能那样使用 PsExec 。我认为您正在另一台计算机上打开 PsExec 会话,它就在那里。它无法查看脚本中的下一行。即 TortoiseProc 不会被输入到 PsExec 中。
我认为你需要在另一台机器上安装SVN客户端(命令行客户端)。然后制作一个bat文件(updateme.bat),将其放在该机器上,然后你可以执行如下操作(全部一行):

c:\sysinternals\PsExec \\OtherComputer c:\updateme.bat

This looks like a local hook. I don't think you can use PsExec like that. I think you're opening the PsExec session on the other computer, and it just sits there. It doesn't have a way to see the next line in the script. i.e. the TortoiseProc isn't fed into the PsExec.
I think you need to install the SVN client (command-line client) on the other machine. Then make a bat file (updateme.bat), place it on that machine, then you can do something like this (all one line):

c:\sysinternals\PsExec \\OtherComputer c:\updateme.bat
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文