【问题标题】:Extracting Revision numbers in svn在 svn 中提取修订号
【发布时间】:2023-01-10 19:50:53
【问题描述】:

我正在尝试在 jenkins 上创建一个管道,它从 svn 存储库获取代码,构建它(使用 MSBuild),测试它,从构建工件(使用 Maven)创建一个包,然后将这个包提交到另一个 svn 存储库属于到另一家公司。

此提交必须具有特定的提交消息格式,其中包括:

1- 一段简短的文字

2- 我们存储库的 url

3- 对我们用来构建解决方案的一些特定 dll 的修订 举个例子:

#Automatic Package Update 
------
src_svn_url = "the source code URL"
src_svn_rev = 33568 , dll1 = 4654 , dll2 = 7657 , ..... 
------

我做了一些研究,发现它可以通过预提交挂钩.我们能做这个预提交挂钩吗提炼我的仓库中不同 dll 的修订号并写入它们自动地在里面提交信息每次我们都在犯?我们的目标是知道使用dll的哪个版本,我们制作了上述包。

【问题讨论】:

  • write them automatically in the commit message every time we are committing? SVN 中的每个提交都记录了它的修订号那么为什么做同样的 svn 已经做了?其次,为什么不在 SVN 中使用标签来标识特定的开发状态。您似乎正在使用的修订版是上次更改的特定文件的修订版,这是不同的。这些 dll 仅在您的 svn 仓库中还是您正在构建的项目的那些部分?我也建议不要通过 svn hook 脚本。

标签: maven svn msbuild jenkins-pipeline commit-message


【解决方案1】:

这不是任何提交挂钩脚本的任务。

您可以在您的管道中运行 svnversion 命令来获取修订号,并使用它为您在另一个存储库中的新提交创建提交日志消息。

例如,您可以在包含所有必要信息的专用文件 log-message.txt 中创建日志消息,然后使用 svn commit -F log-message.txt 命令将该文件的内容用作日志消息。

【讨论】:

  • 谢谢你。我的意图是让管道自动完成整个过程。因此,构建完成后,它必须获取某些特定 dll 的修订版,创建一个包含我问题示例中的模板的文本文件并填写 dll 的修订号,然后进行提交。我的问题是根据模板自动创建该文本文件,然后填写修订号。
  • @RaminB 您需要编写脚本来创建提交日志消息。从您的管道运行此脚本。然后将生成的文本或文件传递到 svn commit 命令中,以便将其用作日志消息。
  • 我可以为此创建一个 python 代码,但如果可能的话,我更喜欢为脚本使用批处理文件。你认为这可能吗?
  • @RaminB 是的,我认为这是可能的。不过,恐怕我不能给你任何例子。但是,我认为您应该能够在 Internet 和 Stack Overflow 上找到一些示例。
猜你喜欢
  • 1970-01-01
  • 2014-07-02
  • 1970-01-01
  • 2010-10-09
  • 2015-12-30
  • 1970-01-01
  • 1970-01-01
  • 2010-09-05
  • 1970-01-01
相关资源
最近更新 更多