7

我们希望每个在我们的 git 存储库中进行推送的人在完成之前运行“grunt”。我们通过在该文件中添加一个预推送挂钩并在该文件中写入和.git/hooks/pre-push写入来强制执行此操作。npm installgrunt

我们还有一个 TFS 存储库。我正在寻找在这里使用的类似逻辑。意思是,当有人试图签入某些东西时,我们想要一种“门控签入”。这只会启动 PowerShell 并在npm install本地grunt 运行

我们不希望 TFS 做任何其他事情(运行构建、运行测试等(所有这些都在 grunt 任务中完成))。

这可能吗?有谁知道怎么做?

4

1 回答 1

1

TFS 与您在本地执行的操作无关。您可以将尽可能多的预提交挂钩添加到您的存储库并将它们推送到 TFS。TFS 将愉快地存储这些钩子脚本。并且当您使用支持它们的客户端时,该客户端将执行它们预提交。

但是,如果您希望 Visual Studio 在提交之前运行这些钩子,那么您可能就不走运了。连接到 Git 时,Visual Studio 没有“签入策略”支持。据我所知,目前在任何其他基于 LibGit2 的 Git 客户端中也没有。

您可以设置链接到 CI 构建的分支策略,有效地在构建服务器上运行 grunt 任务,但我知道这不是您想要的。.

LibGit2 问题部分提供了一些背景知识,这是 Visual Studio 用来实现其 git 功能的。以及 Visual Studio 的相应用户语音项。以及使用相同底层库的 GitHub for Windows 客户端的讨论

于 2016-06-16T13:06:28.540 回答