Git TeamCity将参数从服务器传递到生成代理

Git TeamCity将参数从服务器传递到生成代理,git,continuous-integration,teamcity,Git,Continuous Integration,Teamcity,我想在构建代理上获得手动版本控制的提交计数 version = git rev-list --count "branchname" git在构建代理上不可用,因为我已“在服务器上自动”签出 是否有方法将签出服务器中的版本传递给构建代理?(无需更改VCS签出模式以生成代理) 我正在运行最新的9.1.6版本TC。基本上,不,你不能以你想要的方式做你想做的事情,你不能在服务器上执行一些命令行命令来进行更改 为什么不正确地配置构建编号格式和构建计数器并使用它们呢?还可以在构建过程中动态设置构建编号。在

我想在构建代理上获得手动版本控制的提交计数

version = git rev-list --count "branchname"
git
在构建代理上不可用,因为我已“在服务器上自动”签出

是否有方法将签出服务器中的
版本
传递给构建代理?(无需更改VCS签出模式以生成代理)


我正在运行最新的9.1.6版本TC。

基本上,不,你不能以你想要的方式做你想做的事情,你不能在服务器上执行一些命令行命令来进行更改


为什么不正确地配置构建编号格式和构建计数器并使用它们呢?还可以在构建过程中动态设置构建编号。

在构建过程中,我做了非常类似的事情来获取当前的分支名称和git哈希。遗憾的是,不,在签出模式设置为服务器的构建期间,您不能执行这些git命令。您需要更改签出模式以生成代理,以确保.git文件夹存在于工作目录中。从好的方面来说,我看这没有什么坏处。它不会复制远程,因此构建代理很难将更改推送到主存储库

就@hexct而言,重设基础或合并或任何数量的事情都可能使该计数不可靠。最好将自己绑定到git哈希,而不是提交

有没有办法将版本从签出服务器传递到构建代理?(不将VCS签出模式更改为生成代理)

简而言之,你做不到

您可以尝试并执行以下操作:

- Add a version file to your repository,   
- **before** commiting use a git hook to update this file with the desired number
- Read the content of the file on your build server and you have it.

- Use a git hook to call a job on your build server which gets the 
  branch name and the number of commits and store it for later use somewhere
主要的一点是,既然你做不到这一点,你就需要有一点创造性


样品钩可以是:

预接收挂钩
#/垃圾箱/垃圾箱
branchName=1美元
#获取需要存储的提交数:
version=git rev list——count$branchName
#############
#现在将所需数字写入所需文件,并让
#构建程序读取了它
#############
#输出颜色
红色='\033[0;31m';
绿色='\033[0;32m';
黄色='\033[0;33m';
默认值='\033[0;m';
#个人接触:-)
回显“${red}”
回声“”
回声“|ZZzzz”
回声“|”
回声“|”
回声“|ZZzzz/^\|ZZzzz”
回声“| | ~~~| |”
回声“||-|/\”
回声“/^\|[]+| ^^^”
回声“|^^^^^^ | |+[]| | | |”
回音“|+[]|/\/\/\/\/\/\/\/\/\/\/\/\/\/^^^^^”
回声“|+[]+|~~~~~~~~~~~~~~~~~~~~~~~~~+[].”
回声“| |[]/^\[]+[]+[]+|”
回声“|+[]+|[]| | | |[]|+[]+|”
回声“|[]+| | | | | |[]+|”
回声“||||||||||||-------------------------|||||||||
回声“”
回显“${default}”
#将退出代码设置为0,以便进行推送
出口0;

为什么需要git计数器


最简单的方法是遵循TeamCity的原则。使用TeamCity计数器而不是git计数器。在每次提交后设置生成触发器。并将标签设置回git以查看git历史记录中的生成版本。

我想使用提交计数作为版本号的一部分,如果我使用内置版本控制,这将不可用。那么,您可以添加一个包含提交计数的文件,由预提交挂钩写入。