列出在单个 cvs 提交中签入的所有文件

发布于 2024-07-26 09:28:19 字数 489 浏览 2 评论 0原文

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

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

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

file1.c //revisionsigned as part of this commit..1.5.10.2
file2.c //作为此提交的一部分分配的修订版..1.41.10.1

,为此提交给出的注释是“First Bug Fix”。

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

请分享您的观点,了解 CVS 中是否有更好的方法来跟踪单个提交中签入的所有文件,而不是转发作为提交一部分给出的注释。

Generally,our fixes/patches for any bugs involves changes in multiple files and we will commit all these files in a single shot.

In SVN, for each commit (may involve multiple files),it will increment revision number of whole repository by one. So, we can easily link all the multiple files that went in a single commit.

Now the difficulty with the same case in CVS is that it will increment the revision numbers of all the files individually. Let's say if a commit involves the following files:

file1.c //revision assigned as part of this commit..1.5.10.2
file2.c //revision assigned as part of this commit..1.41.10.1

and the comment given for this commit is "First Bug Fix".

Now, the only way to get all files checked-in as part of this commit is by searching through all the cvs logs for comment "First Bug Fix" and hopefully it will return only the two file revisions mentioned above.

Please share your views on if there is any better way in CVS to keep track of all files checked-in in a single commit instead of relaying on comment given as part of commit.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

感情废物 2024-08-02 09:28:20

好的,我刚刚安装了 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)。
  • 可通过网络浏览的交易。
  • 支持跨模块交易。
  • 生成 CVS 命令(使用“cvs -j”)将补丁集合并到其他分支上。
  • 与 bugzilla 集成(交易会自动针对 bug 进行注册)。

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

OK, I just installed cvsps and ran it from the top level. Here's a sample of the output... this is one of the few hundred patch sets on my module. Note that indeed this does work across different directory trees.

---------------------
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

So, this may indeed do what you want. Nice one, Joakim. However, as mentioned, CVSzilla does much more than this:

  • Web-browsable CVS repositories (via CVSweb).
  • Web-browsable transactions.
  • Supports transactions across modules.
  • Generates CVS commands (using 'cvs -j') to merge patchsets onto other branches.
  • Integration with bugzilla (transactions are automatically registered against bugs).

If all you want is just the patchset info, go with cvsps. If you're looking to use CVS on large projects over a long period of time and are thinking about using bugzilla for your bug-tracking, then I would suggest looking into CVSzilla.

拥抱影子 2024-08-02 09:28:19

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

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

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

I think CVSps might do what you are looking for.

"CVSps is a program for generating 'patchset' information from a CVS repository. A patchset in this case is defined as a set of changes made to a collection of files, and all committed at the same time (using a single 'cvs commit' command). This information is valuable to seeing the big picture of the evolution of a cvs project. While cvs tracks revision information, it is often difficult to see what changes were committed 'atomically' to the repository."

This cvsps relies on cvs client. Make sure you have proper version of cvs which supports rlog command (1.1.1)

失眠症患者 2024-08-02 09:28:19

CVS 本身并不支持“事务”。

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

主页位于:

http://www.nyetwork.org/wiki/CVSZilla 还与 CVSweb 相关,这是通过基于 Web 的 GUI 浏览 CVS 模块的好方法。

CVS does not have inherent support for "transactions".

You need some additional glue to do this. Fortunately, this has all been done for you and is available in a very nice extension called "cvszilla".

The home page is here:

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

This also ties in to CVSweb, which is a great way to browse through your CVS modules via a web-based GUI.

败给现实 2024-08-02 09:28:19

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

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

Perhaps the ANT CvsChangeLog Task is another choice. See http://ant.apache.org/manual/Tasks/changelog.html . It provides date and time for a checkin message. You can produce nice reports with XSLT - try the example at the bottom of the ANT manual page.

I know it's late for an answer, but perhaps other users come across this like I did (searching) and appreciate the ANT integration.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文