我有一个修改一些文件的进程,希望能够通过命令行Tortoise SVN提交它们而无需点击“ok”按钮。对话框弹出后,我的脚本被迫等待我点击“ok”。以下是我使用的参数:
TortoiseProc.exe /command:commit /path:"c:\svn\MyProject" /notempfile /logmsg:"Files Modified 2010-02-12" /closeonend:3
我有一个修改一些文件的进程,希望能够通过命令行Tortoise SVN提交它们而无需点击“ok”按钮。对话框弹出后,我的脚本被迫等待我点击“ok”。以下是我使用的参数:
TortoiseProc.exe /command:commit /path:"c:\svn\MyProject" /notempfile /logmsg:"Files Modified 2010-02-12" /closeonend:3
就像 @bmargulies 所说,只需使用 svn.exe
:
cd "c:\svn\MyProject"
svn commit -m "Files Modified 2010-02-12"
在提交时你不能隐藏 TortoiseProc.exe 对话框:
重要提示
请记住 TortoiseSVN 是一个图形化界面客户端,本自动化指南将向您展示如何使 TortoiseSVN 对话框出现以收集用户输入。如果您想编写不需要用户输入的脚本,应该使用官方的 Subversion 命令行客户端。
(来源:http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-automation.html)
如果你依赖于 TortoiseProc 的 /closeonend:3 行为 来在出现错误、冲突或合并时提醒你,你需要启用 SVN 的退出代码。
虽然我无法在快速谷歌搜索中找到超过“0是成功,非0是错误”的返回代码值列表。
我建议使用svn.exe而不是TortoiseProc.exe。这样会更加简单。
svn.exe
的命令集与 Tortoise 非常相似,唯一缺失的是 Tortoise 的合并/冲突编辑器。我的意思是,svn commit
和 svn update
已经非常简单了,还能更容易吗? - Earlz