通过CVS历史记录查看特定文件的所有提交都没有问题。
我需要的是查看在给定文件的同一日期或附近提交的所有文件,或仅查看普通日期范围。重要的是,我会在给定日期之前或之后获得所有提交。
例如。文件x有20个修订版,最新版本是2011年6月25日
有一个错误,我需要找出该日期检查的其他文件,以检查错误的潜在来源。即使是具有WHERE date > '06-06-2011
等效效果的东西也会非常好。
我试过谷歌搜索但似乎没有任何提及它。但是,我听说可以做类似上面代码示例的事情。
答案 0 :(得分:1)
我使用CVSPS做这样的事情。它将一组checkns汇编成一组称为“补丁集”的集合。它具有各种功能,可以搜索特定用户创建的补丁集,日期,影响特定文件的补丁集等。它还可以创建补丁集的差异报告,这对查找更改内容非常有帮助。
答案 1 :(得分:0)
我现在有一个解决方法类型的解决方案。我会分享它,但我仍然非常有兴趣知道如何做到/如果可以这样做。
解决方法:
Check out two copies of the code based on certain dates
and do a directory diff with something like Beyond Compare.
问题:
What changes were made on or around June 25th?
解决方案(Windows):
1. Create two directories C:\dirA\ and C:\dirB\
2. Right-click C:\dirA\ and click 'CVS Checkout...'
3. Select the appropriate Module
4. Click the 'Revision' tab
5. Choose to get the 'Files at a certain time' and pick June 24th.
6. Repeat steps 2 - 4 on C:\dirB\
7. Choose to get the 'Files at a certain time' and pick June 26th.
8. Do a directory diff of C:\dirA\ vs C:\dirB\
9. Any differences will have been checked in on either the 24th, 25th, or 26th.
10. View CVS History to determine the exact date and time of a particular change.
当然,这不是最优雅的解决方案,但它确实有效。只要日期范围不是太大而且项目没有开发人员拥挤,那么显示的大多数更改都将是您正在寻找的更改。
显然,鉴于这有点类似于kluge的性质,我仍然对更优雅的解决方案非常感兴趣,如果有人有一些意见,我现在暂时打开这个问题。
答案 2 :(得分:0)
注意(5年后,2016年9月)
有关从CVS导入的工具的文档已更新。
commit 106b672,见commit 72e0877,commit 1eba3e5,Jeff King (peff
)(2016年9月22日)。
(Junio C Hamano -- gitster
--于2016年10月3日commit 3d0049e合并)
cvsps (www.cobite.com/cvsps
)现在位于github.com/andreyvit/cvsps
。
git cvs
migration现在包含以下警告:
这些说明使用git附带的
git-cvsimport
脚本,但其他导入程序可能会提供更好的结果。见git cvsimport
gitcvsimport
警告:
警告:
git cvsimport
使用cvsps
版本2,这被认为是 弃用;它不适用于cvsps
版本3及更高版本 如果您正在执行CVS存储库的一次性导入,请考虑使用cvs2git
或cvs-fast-export
。