如何在每次提交时将项目文件的最新版本获取到另一个文件夹?
我使用的是VisualSVN服务器,我认为我们可以在钩子中的提交后实现这一点,但我不知道如何实现。服务器在Windows上。
实际上,我需要将该文件的最新版本获取到IIS7的www
文件夹中。只需将最新的文件放到另一个文件夹即可。
我在提交后挂钩中添加了以下代码(用于将最新版本的文件复制到D:Destination
)。
svn export --force file:///D:/Repositories/myproject D:Destination
exit 2
它对我来说很好。
如果您试图将此导出到网站的目录,则需要更改目录权限。Visual SVN正在使用NETWORK SERVICE。
如果您在存储库中的多个文件夹中使用相同的文件,并且您的Subversion是1.6或更新版本,则可以使用svn:externals的文件类型,而无需绑定到修订版。
在这种情况下,提交到SOURCE的文件将在通常的svn up
之后在TARGET的工作副本中更新
但我不知道是怎么回事
你正确地说你必须通过提交后完成,但如果你的意思是你不知道这个过程,下面是如何做到的。
提交后挂钩是一个脚本,每次提交到SVN存储库中的项目后都会调用它。在每个存储库的hooks文件夹中都有一个名为post-commit
的文件。更改文件以包含为您执行复制所需的命令*,并使其成为可执行的post-commit.exe
。
之后,每次提交新的修订时,该脚本都应该为您处理它。
*所谓必要的命令,我的意思是,要么通过Windows cmd提示符进行复制,要么从post-commit.exe
中调用另一个脚本来完成这项工作。
此外,尽管SVN文档提到提交后挂钩需要是.bat
或.exe
文件,但我的机器上只有当它是.exe
时,它才能工作。
您可以使用此处和此处提供的工具将.bat
文件转换为二进制.exe
。第二个更方便用户。我希望它能有所帮助。