1

至少有两位出色的程序员,Linus Torvalds 和 Guido von Rossum,贬低将关键字放入文件中以显示版本号、最后作者等的做法。

我知道关键字差异如何混淆差异。我喜欢 SlickEdit 的 DiffZilla 的原因之一是它可以设置为跳过前导注释。

但是,我对团队编程有生动的回忆,我们有四个版本的文件(两个不同的版本,一个客户一次性版本和开发版本)都同时打开以进行修补,并且非常有助于验证一目了然,每次我们导航到包含的标题时,我们都会得到正确的标题,并且每次粘贴代码时,源和目标都是我们所期望的。

当仓促的开发人员使用文件系统将文件从一个地方复制到另一个地方,而不是使用该工具将其从存储库中签出时,还会出现这个文件来自哪里的问题;或者,更具防御性的是,当需要将位置 A、B 和 C 中受控制的文件编组(通过挑选)到分发位置 D 时。

在VCS关键字被禁止的地方,你是如何应对的?

4

2 回答 2

3

在我 30 多年的整个职业生涯中,我从未使用过 VCS 关键字。从我使用过的最原始的 VCS 系统到现在(TFS),我使用了一些其他的结构来理解“我在哪里”。

我很少遇到只有一个文件可以使用的情况。我通常拥有构建项目或项目集所需的所有其他文件。我通常使用分支(或有时),并且我正在处理给定分支或流的某个部分。

如果我正在处理多个分支或流,我将为每个分支或流创建一个目录树。要知道我正在处理什么文件,我需要做的就是检查文件路径,最糟糕的是。

在最好的情况下,版本控制系统会准确地告诉您您正在处理的文件版本、更改历史记录、还有谁在处理文件的不同版本,以及您想知道的任何其他信息.

于 2010-03-29T02:15:30.873 回答
1

这并不能完全回答您的问题,但我认为 Linus 和 Guido 有理由不喜欢不适用于小团队企业发展的关键字。

例如$Id$,标签具有您可以认为是全局版本号的内容。Linux 和我猜 Python 开发也足够分散,没有一个数字可以是全局的。很多人在各处都有自己的存储库来填充他们自己的$Id$值,然后这些补丁可能会被发送到 Linus 或 Guido 的存储库,在那里它们没有任何意义。

但是,在您的环境中,您可能有一个中央存储库来分配这些,这很好。听起来你正在使用 git。我想知道是否可以将中央 git 存储库配置为进行标记替换,而本地开发人员存储库则没有。或者也许最好在标签中获取提交哈希。

于 2009-05-02T18:44:44.457 回答