我工作的公司使用CVS作为源代码控制,我们有一个内部网应用程序(Source forge),它暴露了存储库,即我们可以使用该接口查看源文件,但它不提供我可以搜索的任何搜索工具对于给定关键字的代码段。
我想编写一个可以搜索代码片段的应用程序.Ex。将是Koders.com,它提供搜索给定的关键字,并提供浏览源文件的链接。我能想到的两种方式是
1 - 在cvs存储库中搜索(访问可能是个问题。)
2 - 搜索公开所有源文件的Intranet应用程序。
你们认为什么是正确的方法。我打算在一个单独的数据库中对其进行索引,并将其用于搜索,但不知道如何做到这一点。任何帮助表示赞赏:)
答案 0 :(得分:1)
当我被问到“我们在CVS存储库中有一个名为somefile.txt的文件吗?”时或者“我们有一个包含某些文字的文件吗?” (因为我可以访问底层存储库)我只是在CVSROOT上运行find
命令。执行此操作时,请记住CVS使用RCS存储文件,因此文件附加,v
。因此,在查找somefile.txt
时,您必须查找名为somefile.txt,v
的文件。
find $CVSROOT -type f -name somefile.txt,v
或
find $CVSROOT -type f -exec grep sometext {} \;
(做得好可能要复杂一点,但你得到了要点)
如果文件已被“删除”,您将看到它位于Attic
目录中。另外,请注意不要编辑这些,v
文件,因为它很容易破解。
如果您没有访问权限,那么您必须检查整个存储库,然后在本地计算机上搜索,但是您无法有效地搜索历史记录。