Re: I want to search my project source code

Started by Martin Gaintyover 25 years ago2 messagesgeneral
Jump to latest
#1Martin Gainty
mgainty@hotmail.com

Perry-

Does cscope support PHP?

Thanks for the link
M--
----- Original Message -----
From: "Perry Smith" <pedz@easesoftware.com>
To: "Guy Rouillier" <guyr-ml1@burntmail.com>
Cc: <pgsql-general@postgresql.org>
Sent: Sunday, October 28, 2007 10:25 AM
Subject: Re: [GENERAL] I want to search my project source code

Show quoted text

On Oct 28, 2007, at 12:59 AM, Guy Rouillier wrote:

Matthew Wilson wrote:

I have a lot of code -- millions of lines at this point, written
over the last 5 years. Everything is in a bunch of nested folders.
At least once a week, I want to find some code that uses a few
modules,
so I have to launch a find + grep at the top of the tree and then
wait
for it to finish.
I wonder if I could store our source code in a postgresql table and
then use full text searching to index. Then I hope I could run a
query
where I ask for all files that use modules X, Y, and Z.

DBMSs are great tools for the right job, but IMO this is not the
right job. I can't see how a database engine, with all it's
transactional overhead and many other layers, will ever beat a
simple grep performance-wise. I've used Eclipse for refactoring,
but having done it once, I'm sticking with grep.

This is exactly what cscope is good for.

http://cscope.sourceforge.net/

I've used it since the early 90's. I do level 3 support for really
big companies. If you are an emacs fan, its hooked in to it as well.

You want to use the -q option. If it is a million lines of code, its
going to take a while. It pseudo-parses the code (some tricky
constructs will confuse it) and builds a very simple database file.
I think it uses Berkeley's DB file. After that, finding all the
occurrences of foo is a few seconds.

If you want to find just definitions (like where is foo defined),
then use ctags or etags. There is exuberant ctags here:

http://ctags.sourceforge.net/

Perry Smith ( pedz@easesoftware.com )
Ease Software, Inc. ( http://www.easesoftware.com )

Low cost SATA Disk Systems for IBMs p5, pSeries, and RS/6000 AIX systems

---------------------------(end of broadcast)---------------------------
TIP 5: don't forget to increase your free space map settings

#2Perry Smith
pedz@easesoftware.com
In reply to: Martin Gainty (#1)

On Oct 28, 2000, at 9:41 AM, Martin Gainty wrote:

Perry-

Does cscope support PHP?

I don't think so. Exuberant tags suppose a lot of languages but it
does not do references (I think) -- just definitions.

Show quoted text

Thanks for the link
M--
----- Original Message -----
From: "Perry Smith" <pedz@easesoftware.com>
To: "Guy Rouillier" <guyr-ml1@burntmail.com>
Cc: <pgsql-general@postgresql.org>
Sent: Sunday, October 28, 2007 10:25 AM
Subject: Re: [GENERAL] I want to search my project source code

On Oct 28, 2007, at 12:59 AM, Guy Rouillier wrote:

Matthew Wilson wrote:

I have a lot of code -- millions of lines at this point, written
over the last 5 years. Everything is in a bunch of nested folders.
At least once a week, I want to find some code that uses a few
modules,
so I have to launch a find + grep at the top of the tree and then
wait
for it to finish.
I wonder if I could store our source code in a postgresql table and
then use full text searching to index. Then I hope I could run a
query
where I ask for all files that use modules X, Y, and Z.

DBMSs are great tools for the right job, but IMO this is not the
right job. I can't see how a database engine, with all it's
transactional overhead and many other layers, will ever beat a
simple grep performance-wise. I've used Eclipse for refactoring,
but having done it once, I'm sticking with grep.

This is exactly what cscope is good for.

http://cscope.sourceforge.net/

I've used it since the early 90's. I do level 3 support for really
big companies. If you are an emacs fan, its hooked in to it as well.

You want to use the -q option. If it is a million lines of code, its
going to take a while. It pseudo-parses the code (some tricky
constructs will confuse it) and builds a very simple database file.
I think it uses Berkeley's DB file. After that, finding all the
occurrences of foo is a few seconds.

If you want to find just definitions (like where is foo defined),
then use ctags or etags. There is exuberant ctags here:

http://ctags.sourceforge.net/

Perry Smith ( pedz@easesoftware.com )
Ease Software, Inc. ( http://www.easesoftware.com )

Low cost SATA Disk Systems for IBMs p5, pSeries, and RS/6000 AIX
systems

---------------------------(end of
broadcast)---------------------------
TIP 5: don't forget to increase your free space map settings

---------------------------(end of
broadcast)---------------------------
TIP 6: explain analyze is your friend