I am running a trial of Atlassian Crucible at my company of approximately 50 developers. We do not use any other Atlassian products.
As our teams started to become distributed we saw an uptake of ad-hoc code review discussions. Currently this happens using our internal microblogging service, plus links to diffs in our internal GitWeb (and something similar for our SVN projects). I was hoping to find something more suited to the purpose, that better caters to discussion (General comments seem good) and code suggestions (linking to Crucible Snippets would do). We tend to use code review for learning and discussion, and ironing out conventions, rather than to directly improve the specific code under review.
We have a post-commit workflow, where a developer will choose to select their own code for review. Usually this is when they feel that something isn't quite right, and would like help, or they think a pattern or technique is worth publicising. Probably also for a bit of "Look how smart I am"; hey, we are developers after all. I also expect that we would use such a tool for "Why is this code written like this?" kind of reviews, where we look at code written by others, perhaps months or years previously, and discuss how to improve it.
The difficulty here is that often, the code that should be reviewed is not tied to a single changeset (we push to master very regularly) and sometimes, the code we want to review comes as an incidental part of a mostly unrelated changeset (say one line of code that comes as a five class changeset). I have found it particularly difficult to create a review based on arbitrary content. Selecting diffs doesn't allow me to squash several commits into one chunk to look at, and selecting entire files doesn't direct reviewers to what I want them to review.
Ideally I'd be looking for something that allows me to create a review based on arbitrary lines of arbitrary files, use a similar UI to what it looks like for diffs, but spanning multiple versions of the code. Does such a feature exist in Crucible?
I believe Crucible should do what you want already.
Have you tried using the "Search for Files" option when Adding Content to a review ? You can then select how the files should be added to the review. The options are:
* whole files
* diffs to last branch point
* diffs to last reviewed version
* or a diff to any other version
I think the last option should do what you need?
Another option is to simply add the files you wish to have reviewed as whole files, and then have the author of the review comment on the lines (you can comment on multiple lines by click-dragging) they wish to call out to the reviewers.
Crucible offers very flexible code review possibilities, so I am sure you will be able to find a way to make it work best for your team.
Please let us know if you need any more ideas.