Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.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
Git 在Azure DevOps中的拉取请求后修改文件的钩子排序器任务_Git_Tfs_Azure Devops_Githooks_Pull Request - Fatal编程技术网

Git 在Azure DevOps中的拉取请求后修改文件的钩子排序器任务

Git 在Azure DevOps中的拉取请求后修改文件的钩子排序器任务,git,tfs,azure-devops,githooks,pull-request,Git,Tfs,Azure Devops,Githooks,Pull Request,在Azure DevOps服务器中完成从功能分支到主分支的拉取请求后,我想修改受保护主分支中的一些文件 一个文件需要重命名,另一个文件需要创建,第三个文件中有一个字符串需要替换 这是否可以通过服务器端git挂钩或Azure管道或任务实现(对不起,我不熟悉这个主题) 更新 吊钩或管道应执行以下操作: 检查文件current.sql是否有任何内容(如果有,请转至下一步) 更新C#-类中的整数变量(DbVersion)(向其添加1) 将当前.sql文件重命名为db\u update\u[new DbV

在Azure DevOps服务器中完成从功能分支到主分支的拉取请求后,我想修改受保护主分支中的一些文件

一个文件需要重命名,另一个文件需要创建,第三个文件中有一个字符串需要替换

这是否可以通过服务器端git挂钩或Azure管道或任务实现(对不起,我不熟悉这个主题)

更新

吊钩或管道应执行以下操作:

  • 检查文件current.sql是否有任何内容(如果有,请转至下一步)
  • 更新C#-类中的整数变量(DbVersion)(向其添加1)
  • 将当前.sql文件重命名为db\u update\u[new DbVersion].sql
  • 创建一个新的空current.sql文件

  • 您的场景描述有点模糊,但我将根据我了解的您想要做的事情尝试写一些答案:

    通常,在构建管道中修改分支不是一个好的做法。如前所述,在将拉入请求合并到分支之前,您应该这样做

    正如您所描述的,最好知道Git自动处理版本控制。每次提交都会创建更改文件的新版本,您可以在Azure DevOps的提交历史记录中找到。在我看来,你基本上就是不想失去你在.sql文件中所做的编辑

    但是,如果您要求文件的新版本成为管道创建的构建工件的一部分,那么编写一个简短的shell脚本可能是有意义的,您可以通过。对于字符串替换,请使用

    另一个解决方案可能是预推githook,它将执行创建新文件的shell脚本?您可以阅读更多关于githooks的信息


    我希望您能从中找到一些有用的东西,否则最好知道您希望对所创建的版本执行什么操作。你以后会使用这些版本吗?也许最好重新考虑另一个支持多种环境的分支模型。

    为什么这不是pull请求的一部分?它也可能是pull请求的一部分,但文件更改应该通过管道或钩子完成。如果pull请求完成,这些更改也应该提交给主分支。@Martin为什么文件更改应该通过管道或钩子完成?既然它是受保护的主分支,为什么要通过管道或钩子修改它?您能否详细说明您的场景?我们希望在新工作流中使用功能分支。每个功能都可能有一些数据库更改,这些更改当前位于诸如db_update_123.sql之类的文件中。除了这个文件之外,代码中还有一个属性DbVersion,它反映了最新的db_更新文件。对于功能分支,我们不知道在开发过程中哪个是正确的db_版本,因为在我处理的功能之前,另一个功能可能会合并回主分支。因此,我们希望pull请求为我们自动处理版本控制。我们将功能分支期间的所有更改写入当前的.sql文件中。请在问题中检查我的更新谢谢您的回答。我需要db\u update\u[version].sql文件在客户系统上进行增量更新。在客户系统上安装“我的软件”的新版本时,安装工具会在系统上查找当前的db版本,并按顺序执行所有缺少的更新(db\U update\u[installed\u Version+1]。sql…db\U update\u[NewDbVersion]。sql)。