【问题标题】:SVN update using windows task scheduler not working使用 Windows 任务计划程序的 SVN 更新不起作用
【发布时间】:2014-11-01 09:10:42
【问题描述】:

我想设置一个 Windows cron 作业来更新 svn。我用这一步创建了一个批处理文件:

START TortoiseProc.exe /command:update /path:"C:\svn" /closeonend:0

并设置任务调度程序每天运行。这个 svn 需要一个密码,我每次都想输入而不是缓存它。批处理文件按预期工作,没有任何问题。

任务调度程序显示作业已成功执行。但是,我没有让 GUI 输入密码,也没有更新目录。另外,当我尝试手动更新 svn 目录时,它说 svn 已锁定。

  1. 为什么任务计划程序报告成功?
  2. 为什么 svn 会被锁定?

【问题讨论】:

  • C:\svn 文件夹中是否只有一个工作副本,如果有,那是工作副本的根目录吗?如果不是这就是它失败的原因 - 您实际上没有在 /path 选项中指定工作副本。
  • 我从来没有成功让任何 GUI 程序从任务调度程序运行。我不知道这是否可能,说实话。

标签: windows svn cron


【解决方案1】:

任务计划程序报告成功,因为 START 似乎返回退出代码 0。START 仅启动应用程序并退出。它不会等到启动的应用程序退出。任务调度器永远不会以这种方式看到 TortoiseProc 的退出代码。

您可以使用 START WAIT 执行此操作。在 CMD 中输入 START /? 以获取更多信息。 您也可以使用CMD /K 本身来执行此操作。在 CMD 中输入 CMD /? 以获取更多信息。

但我认为您根本不需要 START 或 CMD。您可以直接运行 TortoiseProc 或通过批处理脚本调用它。在批处理脚本中,您可以在文件中添加更多调试,例如回声和重定向输出,以查看会发生什么。

【讨论】:

    【解决方案2】:

    不要不要使用 TortoiseProc.exe 来完成这项任务!使用 Subversion 命令行客户端 (svn.exe)。阅读文档:

    记住 TortoiseSVN 是一个 GUI 客户端,而这个自动化指南 向您展示如何使 TortoiseSVN 对话框出现以收集用户 输入。如果你想写一个不需要输入的脚本,你 应该使用官方的 Subversion 命令行客户端。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-27
      • 2018-07-02
      • 1970-01-01
      • 1970-01-01
      • 2023-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多