【发布时间】:2021-08-20 01:40:05
【问题描述】:
我正在工作的团队使用 TFVC。在过去的 3 年里,我一直在学习 Git。比起 TFVC,我更喜欢 Git。我试图鼓励我的队友使用 Git,但至少目前我们仍在使用 TFVC。
我真的喜欢 Git 的一个特性是 Git 会阻止你将提交推送到远程,而无需先执行拉取,或者至少是获取。这是我非常希望 TFVC 拥有的功能。在我工作的机构,我们可能有 200 名开发人员或其他可能使用 TFS 的用户。他们中的一些人有一个讨厌的习惯,就是只签入他们的代码,而不管其他人在他们之前签入了什么。有时它会清除其他人签入的内容。有时它会破坏构建。然后是不可避免的,“哦,天哪,我很抱歉......”线。或者有些人可能会引用格蕾丝·霍珀(Grace Hopper)的名言:“最好寻求宽恕,而不是允许”。 (假设他们甚至知道 Admiral Hopper 是谁。而且就个人而言,即使 Admiral Hopper 被认为是这句话的功劳,我不相信她会批准一些开发人员踩踏其他开发人员的代码,然后轻率地引用她的话。)
我一直在寻找一种方法来复制 Git 用于执行 push 的相同行为强制执行。我遇到了TFVC check-in policy 的概念。这看起来很理想,所以我考虑添加一个签入策略(根据我共享的链接),但没有看到任何可以远程执行我理解的 Git 在要求用户在推送到原点之前执行拉取时所做的事情.
那么,有没有办法添加一个签入策略,要求用户在执行签入之前首先执行获取最新信息?
我正在使用 TFS 2015 和 VS 2019。
【问题讨论】:
-
作为 git-tfs 桥的维护者,为了避免这种 TFVC 烦恼,我理解你。我的观点是很难实现,这就是为什么我认为没有,因为TFVC如何在集合中以扁平的方式存储所有分支和项目并且没有明确的分离。因此,根据您的工作区中包含的内容,一个文件夹可能具有与另一个不同的最后一个变更集 ID,这使得定义什么是最新的变得困难。 Git-tfs 像 git 一样强制你拥有最后一个版本,但它只有在所有人都使用它的情况下才能工作,但你不能强迫他们使用它。
-
哦,好吧,我想我只能希望,但不应该对没有这样的入住政策感到惊讶。伙计,我希望我能说服我的同事离开 TFVC。