Just like many of you, I really love GitHub. It is almost perfect for day-to-day development and nothing beats its social features. However, there are still few gaps to fill until it becomes my top choice for more professional development. One thing which still drives me crazy is its lack of full project search.
I am known to discourage the use of GitHub pull request workflow as a form of code review, at least for some projects I maintain. The biggest issue that I have is because the review comments are useless in the long run. Years of working collaboratively taught me two important things about any group discussion:
- It has to be persistent: save and restore it again the way you want it
- You need to be able to search for it
This is why e-mail and wiki work really well. E-mail can be retrieved, fetched, backed up, and restored again in various ways. No e-mail server is holding your emails hostage. Many wiki systems store the contents in a database and as long as you can have the access, you can always get a hand of the full history of the collaborative editing. Using the proper front-end client, you can also search any emails or wiki text you need.
Search is often forgotten until you have this deja-vu moment, can’t recall exactly what it is but at least you have to chance to narrow down some fuzzy possibilities. If someone gives a nice feedback on a particular pull request you made, there is little chance you or someone else to be able to find it again in few weeks time. You can still dig your email (if you enable the notifications), but that’s one more place you need to hunt.
If you look at projects like Mozilla and WebKit, the way the code review works is different. Every patch needs to be attached to the corresponding Bugzilla entry. Any review to that patch will appear as another entry comment. This means, you can easily find it later (should you still remember some important keywords) by using the search interface of Bugzilla. Update: Explore this topic in another blog post Cross-Reference: Commit Message and Issue Tracker.
I sincerely hope that GitHub will fix this in the near future. That’ll be really awesome!