Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何获取SVN存储库的上一版本号?_Svn_Powershell - Fatal编程技术网

如何获取SVN存储库的上一版本号?

如何获取SVN存储库的上一版本号?,svn,powershell,Svn,Powershell,我计划创建一个Powershell脚本,用于检测多个svn存储库中的更改,然后对每个存储库执行一些操作,如复制更改的文件或将整个存储库复制到生成站点中 我有一个简单的函数,可以获取存储库的最新版本: function Get-SvnRevision($dir=".") { ([xml](svn info $dir --xml)).info.entry.revision } 我的想法是,一旦我得到当前版本号,将其与以前的版本号进行比较,如果它们不相同,则执行上面提到的一些操作 如何获取以

我计划创建一个Powershell脚本,用于检测多个svn存储库中的更改,然后对每个存储库执行一些操作,如复制更改的文件或将整个存储库复制到生成站点中

我有一个简单的函数,可以获取存储库的最新版本:

function Get-SvnRevision($dir=".")
{
    ([xml](svn info $dir --xml)).info.entry.revision
}
我的想法是,一旦我得到当前版本号,将其与以前的版本号进行比较,如果它们不相同,则执行上面提到的一些操作


如何获取以前的修订号,以便将其与最新版本进行比较,然后执行一些操作?

我建议从另一侧移动:使用

  • 它在每次提交后自动激发
  • 它可以是任何代码(也可以是Powershell),可以由服务器的操作系统执行
  • Subversion将所有需要的详细信息(repo的路径+修订id)作为参数传递给脚本(用于脚本中的
    svnlook
    子命令)

您是否考虑过使用像这样的持续集成服务器来启动这些任务?不要重新发明轮子。我知道CCNet,我不想重新发明轮子,但我正在尝试一个更简单的解决方案,因为我认为我们不会被允许在我们的流程中引入更多的“复杂性”。我希望我能使用CCNet,但我不能。我的意思是这是一个已解决的问题。CCNet并不十分“复杂”,IMHO试图重新设计其功能在您的过程中比构建其他人已经验证过的软件更为复杂。每当您编写脚本查看多个回购协议的状态并四处移动时,您早已不再复杂。与编写自定义脚本或一组脚本来管理CCNet设计用于执行的确切任务相比,CCNet的复杂性要小得多。如果您需要将其出售给管理层(管理层一开始不应该做出技术决策…),请以这种方式推销:您可以花20个小时整理一组脚本来完成这项工作,并承担与新代码相关的所有风险(bug、遗漏的需求、性能、安全性),或者,您可以花12个小时安装和配置一个已经过良好测试并证明可以完成完全相同任务的工具。