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