Code Review
for IntelliJ IDEA

Compatible with  IntelliJ IDEA
13 726
Allows a developer to send a code review email that details any changes to their code compared with the repository. This email is sent before anything is checked in, so colleagues can have a chance to review your changes before they are committed.

Download plugin

Recent change notes

Added a file list at the start of the email to easily see what files have been added/updated.

General usage instructions

The first thing you will need to do is configure the plugin for sending email. Select Code Review Plugin under IDE Settings. Configure your mailserver, email addresses, subject prefix and HTML settings [note that the editing of templates is not yet supported which is why the Template tab is currently disabled]. Now begin a commit of a file or files that you have been editing. You will notice that a new Code Review button appears on the commit dialog. Type in a comment that you want to append to the top of the review email and then click the Code Review button. At this point you should see a dialog that shows a preview of your email along with To/Cc/Bcc/Subject options. Fill them in appropriately and click OK to send the email. Assuming your SMTP server settings were correct the email should now be on its way.
Looks like this plugin is not compatible with Java 8. Is there plan to release new version?
When I try to send the email it gives me an exception. Heres how it looks like. The attempt to send the code review email failed. Reason: SocketException - Permission denied: connect Method) com.sun.mail.util.SocketFetcher.createSocket( com.sun.mail.util.SocketFetcher.getSocket( and 145 more... I've cross checked the settings with my colleagues and the settings seem to work for them. Someone please help me on this. Thanks.
I tried sending a code review with 2 files named log4j.xml, in different folders, of course, and got a ZipException and it hangs IDEA because there are 2 dialog boxes - one with the alert and the other with the progress indicator.
it will throw an Java exception if we set the Inserted/Deleted/Omitted line color in configuration panel in IDEA 10.


Remove below attribute value from so, code review plugin will use default value of Color

Insert/Delete/Omitted the line is broken in IDEA 10.

Is any one know how to set it in
Anonymous: Thanks for the feedback. The idea behind this plugin is that you should send the code review *before* you check anything in. If people want to see the diffs after you've checked in your changes, normally they can use other 3rd party tools instead (or IDEA itself via eg Changes View -> Repository or Incoming).

Can you clarify how you'd see this plugin working with already commited changes? A "Code Review..." menu entry on the context menu in the Changes View -> Repository window perhaps?

The code review works on the checked-out version and its previous version. Once the file checked in, the plugin disables the "core review" button. (Version Control->Commit changes dialog )

In clearcase-ucm, it is more useful to compare with predecessor.

Just Great tool.
Great when either my reviewer or I are working from home.
Simple but clean and effective. What more could you want?
I18N support will be great!
I am running IDEA 7.0.5 and getting this error. Can someone advise on what needs to be done to correct this?

Bad version number in .class file [Plugin: V1IdeaPlugin]
Very useful plugin, I like it a lot. Could you add support for UTF-8 encoding for the mail body text? I have problems with some Czech characters in the commit message / subject.
Hmm I didn't realise 7.0.4 could still run on a 1.5 JRE. Are you on Mac OSX perhaps? My plugin was compiled with JDK 1.6, hence the problem.

I'm away for the next week or so but I'll try to upload a version targeted at 1.5 once I'm back. If you want to try this plugin before then, you could try downloading the source and compile it yourself. Of course it's quite possible I've used some 1.6-specific code in there somewhere too though, I had assumed IDEA had been running on 1.6 across all platforms for quite some time now.
UnsupportedClassVersionError - you must be running IDEA on a 1.5 JRE. Hmm, is that the default for IDEA on OSX perhaps? If so I'll have to recompile with -target 1.5 and upload a new version. I'm away for the next week so if you want to use this before then I'd suggest just grabbing the source and building it yourself. Of course there's always the possibility I used 1.6-specific code in there somewhere too - I assumed IDEA had been on 1.6 forever across all platforms!
Latest version of Code Review (1.2.1) with latest version of IDEA (7.0.4). No workie.

Bad version number in .class file [Plugin: Code Review]
com.intellij.diagnostic.PluginException: Bad version number in .class file [Plugin: Code Review]
at com.intellij.openapi.components.impl.ComponentManagerImpl$ComponentsRegistry.a(
at com.intellij.openapi.components.impl.ComponentManagerImpl$ComponentsRegistry.a(
at com.intellij.openapi.components.impl.ComponentManagerImpl$ComponentsRegistry.access$100(
at com.intellij.openapi.components.impl.ComponentManagerImpl.a(
at com.intellij.openapi.components.impl.ComponentManagerImpl.initComponents(
at com.intellij.openapi.components.impl.stores.ApplicationStoreImpl.load(
at com.intellij.openapi.application.impl.ApplicationImpl.load(
at com.intellij.idea.MainImpl$
at java.awt.event.InvocationEvent.dispatch(
at java.awt.EventQueue.dispatchEvent(
at com.intellij.ide.IdeEventQueue.c(
at com.intellij.ide.IdeEventQueue.b(
at com.intellij.ide.IdeEventQueue.dispatchEvent(
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(
at java.awt.EventDispatchThread.pumpEventsForHierarchy(
at java.awt.EventDispatchThread.pumpEvents(
at java.awt.EventDispatchThread.pumpEvents(
Caused by: java.lang.UnsupportedClassVersionError: Bad version number in .class file
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(
at java.lang.ClassLoader.defineClass(
at com.intellij.util.lang.UrlClassLoader._defineClass(
at com.intellij.util.lang.UrlClassLoader.defineClass(
at com.intellij.util.lang.UrlClassLoader._findClass(
at com.intellij.util.lang.UrlClassLoader.loadClass(
at java.lang.ClassLoader.loadClass(
at java.lang.ClassLoader.loadClassInternal(
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(
at com.intellij.openapi.components.impl.ComponentManagerImpl$ComponentsRegistry.a(
Please  sign in  to leave a comment.