mpen
mpen

Reputation: 282775

How to search Mercurial for a particular change?

I added a function to file on an a branch I can't remember. I want to port that function to a different branch. How can I search Mercurial to find it?

I know the name of the function and the file I put it in.


I'm using TortoiseHg, and it's got a search bar at the top. I'm not sure which Mecurial command it's using internally..maybe hg log?

But so far I've got

 user('me') and file('glob:class/database.php') and ????('myfunctionname')

Not sure what filter I can use to search diff contents.

Also, I don't really know how those filename patterns work, I seem to have to search from the base; can't I do an exact match on filename, excluding directories?

Upvotes: 2

Views: 1424

Answers (1)

Aaron Jensen
Aaron Jensen

Reputation: 26719

I believe the grep command is what you're looking for:

 hg grep 'myfunctionname' -r "user('me') and file('class/database.php')"

You can match a specific file in the file revset query by specifying its full path. Use **file.extension to find any file.extension anywhere in the repository. See the Mercurial docs on file patterns for more information. They are a little unclear on how to match any file with a specific name anywhere in the repo, however, so you'll probably have to do experiment a little.

Upvotes: 3

Related Questions