目前我工作的部署控制并不多。虽然有一个长期计划来创建一个构建脚本来处理部署,我们现在只是发布我们的解决方案,然后将它们复制到服务器。
有一个类似于包含修订号和分支名称的文本文件或类似物,作为当前系统上当前运行的版本的日志,这将非常有用。
是否可以使用SVN挂钩或Visual Studio中的简单后期构建脚本来执行此操作?
答案 0 :(得分:4)
以下是我如何做到的完整细分
在您网站的根目录中创建一个名为Version.txt的空白文本文档。
在您网站的根目录中创建第二个文本文档,名为Version.tmpl,内容如下:
Revision: $WCREV$
Repository: $WCURL$
Modified: $WCMODS?Yes:No$
Built On: $WCNOW$
右键单击您的网站项目,然后选择属性。然后转到构建事件选项卡。
将以下内容粘贴到您的帖子构建事件中:
cd $(ProjectDir)
"%ProgramFiles%\TortoiseSVN\bin\SubWCRev.exe" ..\. Version.tmpl Version.txt
这将使用Version.tmpl作为模板更新Version.txt文件,其中包含有关工作副本的一些详细信息。 Version.txt现在包含在您的网站中这一事实意味着每次部署网站时,Version.txt也会被部署,并且如果您需要将代码库恢复到已部署的版本,它将包含有用的信息。
答案 1 :(得分:0)
svnversion
是用于检查工作副本的当前修订版的工具。
答案 2 :(得分:0)
在Windows上,您有Subwcrev。
答案 3 :(得分:0)
您可以使用构建脚本来执行此操作。查看存储库根目录中的.svn \ entries文件。它应该在文件的早期(第5行左右)包含修订号
答案 4 :(得分:0)
您可以使用此代码从vb获取信息。我使用这个重写版本在app启动时找到这些信息。
http://www.codeproject.com/KB/architecture/svn_visual_studio.aspx
答案 5 :(得分:0)
我使用ant作为构建工具,所以我有一个ant目标,它将svnversion的输出存储在文件svn-version中。该目标是所有主要入口点的依赖项,因此每次运行ant时,都会更新svn-version。我的包装操作包括所有可交付的tar和zip文件中的svn-version。所以我总是可以查看svn-version来找出已安装的代码版本。
无论您使用什么构建工具,您都应该能够做到这一点。如果来自svnversion的数据不够,您可能还想将svn info的输出添加到文件中。
答案 6 :(得分:0)
我还使用Ant并开发了一个special Task,它能够从本地存储库(如果代码已签出)或远程Subversion服务器(如果代码已导出)中检索Subversion信息,并且通过常规的Ant属性使它们可用。
使用Ant替换机制(例如,在“复制”任务中),您可以将这些值放在您认为合适的位置。