We’ve been working on a new search functionality in Beanstalk for a while and today I’m super excited to introduce it to you! Initially we thought about something simple for the first iteration, but I managed to make a full-featured indexed search of commits, scoped by repository or specific user. And there are a few tricks for power users also! Let me show you.
Overview
When you log in to your account you will notice a new search field at the top right corner of the interface. It will always be there across all pages. If you are on the Dashboard, it will search for commits across all repositories. If you are in repository Activity page or Browser, or any other repository-related page, it will search only in that repository. When you enter something in that field you will be redirected to a Search Results page with a list of all revisions found for your search term.
Right now Search is only capable of finding your commits, searching for files contents is coming later. You can use Search to find by commit message, name of file or directory changed in commit, author name and revision number. Search is using stemming so it will treat words like “fishing”, “fish” and “fisher” as the same word.
And the search is blazing fast, because it’s using an industry standard Sphinx search engine.
Search Scopes
Ok, let’s do some advanced searching now. On the Search Results page you noticed a few options to adjust your search: select boxes for repository and user. Use these to search for commits only in some repository or made by a specific user. If you leave the search field empty and select some user, you will get a list of all commits made by him (or her). Very useful to get information about a user’s activity.
Tricks
There are two special triggers that you can use in the search field to adjust your search results: +by and +rev. +by is the same as the users select box on the Search Results page but it allows you to find by users that are not registered in your Beanstalk accounts. You can use that trigger like that: updating CSS +by gilbert
. Or you can use it without search term to get the list of all commits made by user: +by ilya
.
The +rev trigger is my favorite. Using it you can quickly jump to a specific revisions in your repository. Say you are on Activity page and you want to see a changeset for revision 400 of your repository. Just enter this in the search field and you will get what you want: +rev 400
. If you do that on the Dashboard you will get a list of revision 400 changesets for all repositories in your account.
How do you like it?
This implementation of Search is just iteration number one so it’s probably not ideal and won’t suit all your needs, but as we move forward we will continue improving it according to your feedback. So we would like to hear from you! Let us know how search works for you and what interesting ideas do you have about making it even better.