Windows中的SVN预提交挂钩FTP上载

Windows中的SVN预提交挂钩FTP上载,windows,svn,ftp,pre-commit-hook,Windows,Svn,Ftp,Pre Commit Hook,我有一个SVN回购在Windows机器上运行。我需要一个脚本,将任何提交的文件上传到远程web服务器。我已经阅读了预提交挂钩,但我不知道如何实际编写脚本,甚至不知道应该用什么语言编写。似乎脚本需要是.bat或.exe才能在windows中运行 是否有人拥有将在Windows计算机上运行的脚本?我不希望上传整个网站,但个人文件(s)提交。我想要一个预提交钩子,因为如果ftp上传失败,它会给用户反馈 如果您以前做过,请向新手解释整个过程。我认为您需要一个post-commit挂钩 svn钩子实际上可

我有一个SVN回购在Windows机器上运行。我需要一个脚本,将任何提交的文件上传到远程web服务器。我已经阅读了预提交挂钩,但我不知道如何实际编写脚本,甚至不知道应该用什么语言编写。似乎脚本需要是.bat或.exe才能在windows中运行

是否有人拥有将在Windows计算机上运行的脚本?我不希望上传整个网站,但个人文件(s)提交。我想要一个预提交钩子,因为如果ftp上传失败,它会给用户反馈


如果您以前做过,请向新手解释整个过程。

我认为您需要一个post-commit挂钩

svn钩子实际上可以是任何可执行文件或脚本文件

您可以在windows上使用内置的命令行ftp客户端。一种方法是将FTP命令放入文本文件中,您可以从批处理文件生成文本文件。例如:

echo [username]>ftp.txt
echo [password]>>ftp.txt
echo put [filename]>>ftp.txt
echo quit>>ftp.txt

ftp -s:ftp.txt [server]

当然,您也可以编写一个程序来实现这一点(例如,在.Net中,使用类),它不必是批处理脚本。

我认为您需要一个提交后钩子

svn钩子实际上可以是任何可执行文件或脚本文件

您可以在windows上使用内置的命令行ftp客户端。一种方法是将FTP命令放入文本文件中,您可以从批处理文件生成文本文件。例如:

echo [username]>ftp.txt
echo [password]>>ftp.txt
echo put [filename]>>ftp.txt
echo quit>>ftp.txt

ftp -s:ftp.txt [server]

当然,您也可以编写一个程序来实现这一点(例如,在.Net中,使用类),它不必是一个批处理脚本。

当您希望能够由于某种原因使提交失败时,可以使用预提交挂钩。您真的希望由于FTP站点关闭或磁盘已满而导致提交失败吗

您应该只使用预提交脚本来失败由开发人员控制的内容,例如缺少必需属性的文件等。这使开发人员有机会纠正问题,然后重新提交提交

提交后脚本仍然会在用户等待终端完成时将其绑定,但脚本可能会失败并通知用户某些操作失败,但无论如何都会发生提交。如果您想使用钩子来实现这一点,那么应该使用提交后钩子,而不是提交前钩子


对于你想做的事情,挂钩不是一个好办法。如果用户提交了很多文件怎么办?当你的钩子脚本执行的时候,他们必须坐在那里十分钟左右吗

更好的方法是使用连续构建系统,如。Hudson将监视您的Subversion存储库,并且可以在用户每次提交时执行您想要的FTP任务。使用Hudson,您不会在开发人员等待钩子完成时束缚他们,并且您有一个完整的日志记录每次提交时发生的情况

事实上,每个站点都应该使用连续构建服务器。即使您不编译代码,您仍然希望对每个提交运行测试

Hudson甚至有FTP和SFTP插件,可以使您的任务更容易完成。而且,您可以在Hudson中调用预构建和后构建脚本,这样您就可以灵活地执行您内心渴望的任何操作

Hudson在Windows服务器和Unix服务器上运行。这是一个Java过程



如果您在Windows上,并且没有PowerShell,那么您应该下载一些脚本语言,并使用它们来编写钩子。Windows command.exe处理器中的标准批处理编程语言不是很灵活,也不是很强大。因为钩子是在服务器上运行的,所以您只需要担心钩子是否在一台机器上运行。有些程序使用客户端钩子,如果您编写钩子,它必须能够在客户端可能使用的每个系统上运行。

如果您希望能够由于某种原因使提交失败,则使用预提交钩子。您真的希望由于FTP站点关闭或磁盘已满而导致提交失败吗

您应该只使用预提交脚本来失败由开发人员控制的内容,例如缺少必需属性的文件等。这使开发人员有机会纠正问题,然后重新提交提交

提交后脚本仍然会在用户等待终端完成时将其绑定,但脚本可能会失败并通知用户某些操作失败,但无论如何都会发生提交。如果您想使用钩子来实现这一点,那么应该使用提交后钩子,而不是提交前钩子


对于你想做的事情,挂钩不是一个好办法。如果用户提交了很多文件怎么办?当你的钩子脚本执行的时候,他们必须坐在那里十分钟左右吗

更好的方法是使用连续构建系统,如。Hudson将监视您的Subversion存储库,并且可以在用户每次提交时执行您想要的FTP任务。使用Hudson,您不会在开发人员等待钩子完成时束缚他们,并且您有一个完整的日志记录每次提交时发生的情况

事实上,每个站点都应该使用连续构建服务器。即使您不编译代码,您仍然希望对每个提交运行测试

Hudson甚至有FTP和SFTP插件,可以使您的任务更容易完成。而且,您可以在Hudson中调用预构建和后构建脚本,这样您就可以灵活地执行您内心渴望的任何操作

Hudson在Windows服务器和Unix服务器上运行。这是一个Java过程



如果您在Windows上,并且没有PowerShell,那么您应该下载一些脚本语言,并使用它们来编写钩子。Windows command.exe处理器中的标准批处理编程语言不是很灵活,也不是很强大。因为钩子是在服务器上运行的,所以您只需要担心钩子是否在一台机器上运行。有些程序使用客户端钩子,如果编写钩子,它必须能够在客户端可能使用的每个系统上运行。

否,我需要预提交。否则FTP上传失败,但提交了,我就完蛋了。这些都不是问题