【问题标题】:List all the files checked-in in a single cvs commit列出在单个 cvs 提交中签入的所有文件
【发布时间】:2018-11-28 00:20:05
【问题描述】:

通常,我们对任何错误的修复/补丁都涉及多个文件的更改,我们将一次性提交所有这些文件。

在 SVN 中,对于每个提交(可能涉及多个文件),它将整个存储库的修订号加一。因此,我们可以轻松地链接一次提交中的所有多个文件。

现在,在 CVS 中使用相同情况的困难在于它会单独增加所有文件的修订号。假设提交是否涉及以下文件:

file1.c //作为此提交的一部分分配的修订..1.5.10.2
file2.c //作为此提交的一部分分配的修订..1.41.10.1

为此提交的评论是“First Bug Fix”。

现在,让所有文件作为此提交的一部分签入的唯一方法是在所有 cvs 日志中搜索评论“First Bug Fix”,并希望它只返回上面提到的两个文件修订。

请分享您对 CVS 中是否有更好的方法来跟踪在单个提交中签入的所有文件而不是转发作为提交的一部分给出的评论的看法。

【问题讨论】:

  • 见过 cvs 制作“提交标识符”,不确定这是否是非标准扩展。而且不知道如何将它们用于任何事情。

标签: version-control cvs


【解决方案1】:

我认为CVSps 可能会满足您的需求。

“CVSps 是一个用于从 CVS 存储库生成“补丁集”信息的程序。在这种情况下,补丁集定义为对文件集合所做的一组更改,并且所有更改都同时提交(使用单个 ' cvs commit' 命令)。这些信息对于了解 cvs 项目发展的大图很有价值。虽然 cvs 跟踪修订信息,但通常很难看到哪些更改被“原子”提交到存储库。”

这个 cvsps 依赖于 cvs 客户端。确保您拥有支持 rlog 命令 (1.1.1) 的正确 cvs 版本

【讨论】:

  • 有趣。我想知道 CVSps 的工作原理是什么?我想知道 cvsps 是否可以跨不同的目录工作,因为时间戳可能不同?当然,CVSzilla 添加了许多非常好的特性——它与 CVSweb 和 Bugzilla 相关联,确实提供了一个非常丰富的环境。
  • 我看到 cvsps 可以通过标准的 Ubuntu 存储库获得。标记这个答案是为了感谢您教我有关 cvsps 的知识。 :)
  • 我只知道它的存在或多或少,所以不太了解它是如何工作的
  • 它跨目录工作,默认情况下有一个大约 10 分钟的时间戳窗口(可以更改),以处理同一提交的时间戳差异。 (这意味着如果你没有非常独特的提交 cmets,它们可能会被错误地折叠成一个提交)
【解决方案2】:

CVS 没有对“事务”的固有支持。

你需要一些额外的胶水来做到这一点。幸运的是,这一切都已为您完成,并且可以在名为“cvszilla”的非常好的扩展中使用。

主页在这里:

http://www.nyetwork.org/wiki/CVSZilla

这也与 CVSweb 相关,这是通过基于 Web 的 GUI 浏览 CVS 模块的好方法。

【讨论】:

    【解决方案3】:

    也许 ANT CvsChangeLog 任务是另一种选择。见http://ant.apache.org/manual/Tasks/changelog.html。它提供签入消息的日期和时间。您可以使用 XSLT 生成漂亮的报告 - 试试 ANT 手册页底部的示例。

    我知道答案已经很晚了,但也许其他用户会像我一样遇到这个问题(搜索)并欣赏 ANT 集成。

    【讨论】:

      【解决方案4】:

      好的,我刚刚安装了 cvsps 并从顶层运行它。这是输出示例...这是我模块上的几百个补丁集之一。请注意,这确实适用于不同的目录树。

      ---------------------
      PatchSet 221         
      Date: 2009/04/22 22:09:37
      Author: jlove-ext        
      Branch: HEAD             
      Tag: LCA_v1_0_0_0_v6     
      Log:                     
      Bug: 45562               
      Check the length of strings in messages. Namely:
      
        * Logical server IDs cannot be more than 18 characters (forcing a
          TCSE protocol requirement).                                    
        * Overall 'sid' (filter) search string length cannot be more than
          500 (this is actually more than the technical maximum messages are
          allowed, but is close).                                           
      
      Alarm messages and are now not going to crash either as the alarm text
      is shortened if necessary by the LCA.                                 
      
      Members: 
              catalogue/extractCmnAlarms.pl:1.2->1.3 
              programs/ldapControlAgent/LcaCommon.h:1.18->1.19 
              programs/ldapControlAgent/LcaUtils.cc:1.20->1.21 
              programs/ldapControlAgent/LcaUtils.h:1.6->1.7    
              programs/ldapControlAgent/LdapSession.cc:1.61->1.62 
              tests/cts-45562.txt:INITIAL->1.1
      

      所以,这确实可以满足您的需求。不错,乔金。然而,如前所述,CVSzilla 所做的远不止这些:

      • 可通过 Web 浏览的 CVS 存储库(通过 CVSweb)。
      • Web 可浏览交易。
      • 支持跨模块事务。
      • 生成 CVS 命令(使用“cvs -j”)将补丁集合并到其他分支。
      • 与 bugzilla 集成(交易会自动针对错误注册)。

      如果您想要的只是补丁集信息,请使用 cvsps。如果您希望长期在大型项目中使用 CVS,并且正在考虑使用 bugzilla 进行错误跟踪,那么我建议您研究 CVSzilla。

      【讨论】:

        【解决方案5】:

        【讨论】:

        • 再试一次,如果还是不行,请联系chan​​gelog项目成员。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-17
        • 2021-10-08
        相关资源
        最近更新 更多